【问题标题】:play decoded raw audio data in iPhone在 iPhone 中播放解码的原始音频数据
【发布时间】:2012-04-03 13:56:29
【问题描述】:

我正在为 iOS 开发一个流媒体应用程序,我正在正确获取所有音频数据包并对其进行解码,但现在我完全不知道如何在 iPhone 上播放它。我已经使用 ffmpeg 解码数据包。我得到的所有代码远在播放文件中的音频,但我的情况是,我必须按顺序播放从服务器获取的音频数据包。我不想将所有数据包保存到文件中,所以任何可以帮助我解决的代码感谢我的问题..

谢谢你...

【问题讨论】:

    标签: ios ffmpeg audio-streaming red5


    【解决方案1】:

    您需要使用音频服务来执行此操作。 AudioQueueAudioUnitAudioQueue 更适合流式应用程序。

    AudioQueue 的经典示例是 Apple's SpeakHere

    Matt Gallagher 还提供了一些出色的教程,其中包含用于流式传输的示例代码。

    Streaming MP3/AAC audio again

    如果您想走AudioUnit 路线,请参阅Using RemoteIO audio unit

    通过将您的代码基于 Matt Gallagher 的示例,可能还使用 SpeakHere,您应该能够播放已解码的数据包。有关如何使用缓冲区而不是文件播放的信息,请参阅我的其他答案。

    别忘了这是相当高级的东西。您需要熟悉缓冲区、指针等。确保您也了解帧、数据包等。将音频输出到那里会有些痛苦是意料之中的。

    【讨论】:

    • 非常感谢您的帮助。实际上我已经在这里演讲和马特加拉格尔的项目,但他们很难理解。此外,我还找到了另一个link,我觉得它不错,但我很困惑是否可以分块读取文件然后播放它们。
    • 这是一件棘手的事情,而且很难避免。你可以分块播放这些东西。您只需要在播放它们之前确保您拥有这些块。否则,您的音频会出现口吃效果。如果您在这里看到我的回答,我会详细介绍这些示例,特别是从缓冲区而不是文件中回放 stackoverflow.com/questions/8357514/…
    • [Max MacLeod]我可以使用 AvPlayer 执行此操作,还是必须使用 AudioQueue?我刚发现某个地方,所以我很好奇..请帮助...
    • 从文件播放你可以使用 AVPlayer。此外,我认为媒体类中有新的功能可以从流中播放。 AudioQueue 和 AudioUnit 是您处理原始字节的较低级别。顺便说一句,请随时接受答案或投票。得到一些赞赏会很高兴:-)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-28
    相关资源
    最近更新 更多