我是一个学生,谁试图制作mms流音频应用程序。
我得到mms流使用libmms,并解码wma音频使用ffmpeg。
但是我不知道下一步该怎么做。
最近,我在堆栈溢出站点上看到了类似的问题。(作者是c4r1o5)
但他在avcodec_decode_audio2之后使用了cfwritestreamwrite。
是那么回事吗?我认为这是没有必要的,因为网络问题完成后,mms_connect,ffmpeg解码。
有必要用吗?
我试着把原始音频放进音频缓冲器。当玩的时候,它只带有白色的噪音。
请帮帮我。
如有任何提示或评论,将不胜感激。
提前谢谢。

发布于 2011-08-15 05:15:44
请张贴必要的代码。
而且,您不一定要使用CFWriteStreamWrite。
尽管我没有使用CFWriteStreamWrite的经验,但在mms流中,这是不必要的。
您所需要的只是连接MMS,解码wma音频文件,队列音频缓冲区在iphone中播放。
我想你必须了解iphone 音频队列服务
并确保在获得音频帧时使用线程。
该网站提供了基本信息。
最后,之所以只有白噪声,是因为您设置了错误的mAudioData。
使用memcpy复制音频内存。
发布于 2011-11-19 20:35:21
您必须实现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);
}
}https://stackoverflow.com/questions/7013203
复制相似问题