如何在Iphone中播放原始音频? (使用ffmpeg)

时间:2011-08-10 15:13:52

标签: iphone stream ffmpeg avaudioplayer mms

我是一名正在尝试制作mms流音频应用的学生 我使用libmms获取了mms流,并使用ffmpeg解码了wma音频 但是我不知道下一步该做什么。

我最近在stackoverflow站点中看到了类似的question。 (作家 c4r1o5
但他在avcodec_decode_audio2之后使用了cfwritestreamwrite 是对的吗?我认为没有必要因为网络问题在mms_connect,ffmpeg解码后完成了。

是否需要使用?
我试图将原始音频放到音频缓冲区。并且在播放时,它只带有白噪声。

请帮帮我 任何提示或评论都会受到赞赏 提前谢谢。

enter image description here

2 个答案:

答案 0 :(得分:1)

请发布必要的代码 并且,您不一定使用CFWriteStreamWrite 虽然我没有使用CFWriteStreamWrite的经验,但在mms流媒体中没有必要 您只需连接MMS,解码wma音频文件,队列音频缓冲区即可在iphone中播放 我想你必须了解iphone Audio Queue Service
并且在获取音频帧时一定要使用线程 基本信息在于该网站。

最后,只有白噪声的原因是因为你设置了错误的mAudioData 使用memcpy复制音频内存。

答案 1 :(得分:0)

您必须实现AudioQueueOutputCallback才能将解码后的音频数据传递给AudioQueue。

- (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);
    }
}
相关问题