【问题标题】:Audio Queue Services on iPhone only playing the first enqueued buffer?iPhone上的音频队列服务只播放第一个入队缓冲区?
【发布时间】:2009-12-28 20:30:55
【问题描述】:

我整晚都在想办法解决这个问题。我的代码和苹果的例子here基本一样。但是,设备只播放队列中的第一个缓冲区(我在应用程序启动时听到第一个缓冲区的内容)。之后,设备根本不会发出声音。尽管 AQS 继续触发我的 AudioQueueOutputCallback 函数,但播放仍在运行。此外,对 AQS 的每次调用都返回 0,因此没有失败。

现在,只要我从回调函数中调用AudioQueueEnqueueBuffer,我就可以播放后续缓冲区。这不起作用,因为我只能从我的AudioFileStream_PacketsProc 回调中填充缓冲区并将其排入队列,因为数据从套接字进入AudioFileStreamParseBytes

其他人有这个问题吗?对我来说似乎是 AQS 中的一个错误......

谢谢, 安德鲁

【问题讨论】:

    标签: iphone audioqueueservices


    【解决方案1】:

    想办法以防万一其他人有这个问题......

    我没有意识到 AQ 总是及时向前发展。由于我使用的是来自 UDP 数据流的音频数据,我会因为丢包而慢慢落后于 AQ。

    我无法弄清楚如何告诉 AQ “立即”播放缓冲区。我的解决方法是在检测到丢包时重置 AQ。这并不理想,但目前可行。

    安德鲁

    【讨论】:

    • 我也有类似的问题,能否请您提供更多见解。
    猜你喜欢
    • 1970-01-01
    • 2015-07-31
    • 1970-01-01
    • 2018-07-22
    • 2010-12-05
    • 1970-01-01
    • 2011-10-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多