录制实时流媒体音频
Posted
技术标签:
【中文标题】录制实时流媒体音频【英文标题】:record live streaming audio 【发布时间】:2010-07-25 00:04:48 【问题描述】:我实际上正在制作一个应用程序,它必须在 ipad 上播放和录制来自互联网的流式音频。音频流已经完成,我很快就要到录音部分了,我不知道如何继续。
能给个提示吗???主意?它必须在录制到 AAC 或 MP3 的同时播放。
谢谢。
【问题讨论】:
有什么解决办法吗?请找到以下链接:***.com/questions/10931615/… 如果您有任何录制直播音频的解决方案,能否提供给我? 【参考方案1】:您需要使用较低级别的 AudioQueue API,并使用 Audiosession API 来设置音频会话。
然后您需要填写一个AudioStreamBasicDescription
结构并使用AudioQueueNewInput()
创建一个新的输入队列,并包含用于处理输入缓冲区的回调函数。
然后您需要使用AudioQueueAllocateBuffer()
和AudioQueueEnqueueBuffer()
创建3 个缓冲区。只有这样您才能准备好致电AudioQueueStart()
。您还应该处理音频会话中断,并处理停止音频队列。
这只会为您提供包含未压缩 16 位整数 PCM 音频数据的缓冲区流。你仍然需要压缩数据,这是另一种涉及使用AudioConverter
API 的蠕虫,我没有在 iPhone OS 上做过,所以我不知道在那里会起作用。
【讨论】:
嗨卢修斯谢谢,你能解释一下xD我是新人,我迷路了:s 您有什么具体问题吗? 您是否有执行此操作(即录制)的代码示例? :(【参考方案2】:请看一下这个框架。录制时提供数据供录制Streaming Kit
通过 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)
...
];
【讨论】:
以上是关于录制实时流媒体音频的主要内容,如果未能解决你的问题,请参考以下文章