【问题标题】:iOS AudioServicesAddSystemSoundCompletion callback incurring a 1 second delayiOS AudioServicesAddSystemSoundCompletion 回调导致 1 秒延迟
【发布时间】:2011-10-24 04:34:21
【问题描述】:

我正在播放几个声音,它们必须按顺序(随机)播放,这样当一个完成时,下一个需要开始。

我正在使用 AudioServicesAddSystemSoundCompletion 回调过程来确定由 SystemSoundID 指定的声音文件何时完成播放。此时,静态 C 回调方法被命中,然后回调到实例中以播放另一个声音。

但是,我在音频完成和回调函数被触发之间延迟了 1 秒。

音频被修剪,最后没有多余的空间。我已将 NSLog 放在几个关键位置进行确认,然后播放第一个声音 - 其余代码什么都不做 - 只是等待“输入”,然后在音频完成后一秒钟常规地调用回调。

我查看了官方文档,但找不到任何原因 - 10 分钟的谷歌搜索也没有提供任何解决方案。

请问大家有什么想法吗?

谢谢

【问题讨论】:

    标签: iphone ios audio delay


    【解决方案1】:

    我不知道延迟,我从未经历过。但也许你可以试试this。它是 SystemSoundID 及其一些相关函数(包括完成回调)的 Objective-C 包装器。它应该比使用 C 函数更容易。

    【讨论】:

      【解决方案2】:

      很抱歉那些阅读本文的人,但由于时间限制,我使用 Apple 的支持请求来解决这个问题,你不会相信答案...

      没有延迟。 (勺子/随便什么;))

      问题是由我们用来剪切、修剪和导出音频文件的应用程序的 UI“功能”引起的...GarageBand。

      看来,如果您在 GarageBand 中修剪音轨,直到只有您想要的声音可见并播放 - 即使在循环播放时 - 然后将该音轨导出为 .aif 文件......它会在没有显示或警告您的情况下放置 -曲目的所有修剪和剪切部分返回!!!

      因此,即使您在 GB 天后重新打开该曲目,您所看到和听到的只是精简版。然而,修剪只是文件上的元数据 - 就像 iTunes 修剪一样......完全没有意义。

      因此,所有音频都必须重新编辑并在更准确的音频应用程序中导出 - 大胆...

      Apple 确实提到这些声音播放的回调线程是一个低优先级线程,但我们仍然不应该看到这样的暂停。

      感谢那些试图寻找原因的人,特别是上面的海报花时间尝试和帮助。

      【讨论】:

        猜你喜欢
        • 2021-10-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-10-29
        • 1970-01-01
        • 2021-04-26
        • 2012-08-19
        相关资源
        最近更新 更多