记录直播流音频

4
我正在制作一款应用程序,需要在iPad上播放和录制来自互联网的流媒体音频。音频流已经完成,现在我很快就要开始录制部分,但是我不知道该如何继续。你能给我一些提示吗?想法?它将需要在同时录制AAC或MP3时进行播放。谢谢。

有什么解决方案吗?请查看以下链接:http://stackoverflow.com/questions/10931615/how-to-record-livestream-audio-and-save-to-documents-directory-while-playing - Loquatious
请问您是否有记录直播音频的解决方案? - Loquatious
2个回答

1

你需要使用较低级别的AudioQueue API,并使用AudioSession API设置音频会话。

然后,您需要填写一个AudioStreamBasicDescription结构,并使用AudioQueueNewInput()创建一个新的输入队列,并包括处理输入缓冲区的回调函数。

然后,您需要使用AudioQueueAllocateBuffer()AudioQueueEnqueueBuffer()创建3个缓冲区。只有这样,您才能准备好调用AudioQueueStart()。您还应该处理音频会话中断,并处理停止音频队列。

这只会让您获得包含未压缩的16位整数PCM音频数据的缓冲区流。您仍然需要压缩数据,这是另一个棘手的问题,涉及使用AudioConverter API,在iPhone OS上我不知道哪些方法可行。


嗨,Lucius谢谢,你能再解释一下吗?我是新手,有点迷茫。 - awlcs
你有具体的问题吗? - lucius
你有一个能够完成这个任务,比如录音的代码示例吗?:( - awlcs

0
请看这个框架。它提供了录制数据的数据,同时录制流媒体套件
通过HTTP播放MP3。
STKAudioPlayer* audioPlayer = [[STKAudioPlayer alloc] init];

[audioPlayer play:@"http://www.abstractpath.com/files/audiosamples/sample.mp3"];

并通过使用此委托将其数据附加到NSMutabledata以离线播放。

在播放之前拦截PCM数据。

 [audioPlayer appendFrameFilterWithName:@"MyCustomFilter" block:^(UInt32 channelsPerFrame, UInt32 bytesPerFrame, UInt32 frameCount, void* frames)
   {
   ...
   }];

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接