Nic*_*lis 2 iphone mms wma core-audio audio-streaming
我不确定音频单元是否可以在iPhone上的流式音频场景中用作编解码器.
我已经在各个地方读过它可以做到的,但我还没有看到任何示例或适当的文档.相反,我发现大多数发布的应用程序都使用了ffmpeg和libmms.
我感谢你能给我的任何帮助.
音频单元非常低级,如果您想要进行一些重大的音频处理(如实时音频效果),它们非常有用.据我所知,Audio Units不支持wma音频编解码器.你必须使用FFmpeg库.
由于FFmpeg也支持mms,因此不必使用libmms等其他库来连接mms音频流.您可以使用FFmpeg连接到mms音频流,如下所示:
const char *url = "mmst://somemmsurlhere.com";
avformat_open_input(formatCtx, url, NULL, NULL);
Run Code Online (Sandbox Code Playgroud)
要解码音频数据,您可以使用avcodec_decode_audio3功能.准备好解码的音频数据后,我建议您使用AudioQueue框架进行播放.AudioQueue通过调用您定义的回调函数来询问音频数据.其中一个回调函数是AudioQueueOutputCallback,您可以在其中传递解码的音频数据,如下所示:
- (void)handlePlayCallback:(AudioQueueRef) inAudioQueue buffer:(AudioQueueBufferRef) inBuffer {
// copy decoded audio data to inBuffer->mAudioData
// and set the size of the copied data like this
// inBuffer->mAudioDataByteSize = data_written
if(inBuffer->mAudioDataByteSize > 0) {
AudioQueueEnqueueBuffer(inAudioQueue, inBuffer, 0, NULL);
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1689 次 |
| 最近记录: |