2012-04-03 34 views
2

解码原始音频数据我正在开发适用于iOS一个流应用程序,我正确地获取所有音频数据包,并解码,但现在我完全糊涂了如何发挥它在iPhone上。我已经解码包..到目前为止我得到的所有代码都是从文件播放音频,但我的情况下,我必须播放音频数据包,这是我从服务器获得的顺序他们来了..我不想保存所有数据包到一个文件,所以任何代码,这将帮助我解决我的问题是感激..发挥在iPhone

Thnak你......

回答

0

你需要使用音频服务做到这一点。 AudioQueueAudioUnitAudioQueue更适合流式应用程序。

经典的样本 - 为AudioQueue - 是Apple's SpeakHere

马特·加拉格尔还拥有流媒体的示例代码一些优秀的教程。

Streaming MP3/AAC audio again

如果您想要转到AudioUnit路线,请参见Using RemoteIO audio unit

通过立足马特加拉格尔的样本代码,也可能使用SpeakHere,你应该能够发挥你的解码包。请参阅我的其他答案,了解如何使用缓冲区而不是文件进行播放。

不要忘记,这是很先进的东西。您需要熟悉缓冲区,指针等。确保您理解帧,数据包等。预计将会有一些让您的音频出现的痛苦。

+0

非常感谢您的帮助。其实我已经在这里和马特加拉格尔的项目发言,但他们很难理解。此外,我发现另一个[链接](http://lovingod.host.sk/iphone/developers/audio_queues.html),我发现它很好,但如果我能够以块的形式读取文件然后播放它们,我感到困惑。 – user1310596 2012-04-05 10:22:46

+0

这是棘手的东西,这很难避免。你可以玩大块的东西。你只需要确保你在播放它们之前已经有了这些块。否则,你的音频会出现口吃效果。如果你在这里看到我的答案,我会详细介绍这些例子,特别是从缓冲区而不是文件回放http://stackoverflow.com/questions/8357514/ios-stream-audio-from-one-ios-device-to -otherother/8492598#8492598 – 2012-04-05 12:58:03

+0

[Max MacLeod]我可以使用AvPlayer来做到这一点,还是强制使用AudioQueue?我刚刚发现某处,所以我好奇..请帮助... – user1310596 2012-04-06 09:00:49