Iphone iOS AudioServicesAndSystemSoundCompletion回调导致1秒延迟

Iphone iOS AudioServicesAndSystemSoundCompletion回调导致1秒延迟,iphone,ios,audio,delay,Iphone,Ios,Audio,Delay,我正在播放几个声音,它们必须按顺序(随机)播放,这样当一个声音结束时,下一个声音需要开始 我正在使用AudioServicesAddSystemSoundCompletion回调过程来确定SystemSoundID指定的声音文件何时完成播放。此时,静态C回调方法被命中,然后回调实例以播放另一个声音 但是,在音频结束和回调函数被命中之间有1秒的延迟 音频被修剪,末端没有额外的空间。我将NSLog放在几个关键位置进行确认,并播放第一个声音-其余代码什么也不做-只是等待“输入”,然后在音频结束后的一秒

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

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

但是,在音频结束和回调函数被命中之间有1秒的延迟

音频被修剪,末端没有额外的空间。我将NSLog放在几个关键位置进行确认,并播放第一个声音-其余代码什么也不做-只是等待“输入”,然后在音频结束后的一秒钟内常规地点击回调

我查阅了官方文件,找不到任何理由——10分钟的谷歌搜索也没有提供任何解决方案

有人有什么想法吗


谢谢

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

阅读本文的人很抱歉,但由于时间限制,我使用了苹果的支持请求来弄清问题的真相,你不会相信答案

刻不容缓。(勺子/随便什么;)

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

如果您在GarageBand中修剪一个音频曲目,直到只有您想要的声音可见并播放(即使在循环播放时),然后将该曲目导出为.aif文件。。。它把没有显示或警告你-所有的修剪和削减部分的轨道回来

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

因此,所有的音频都必须重新编辑并导出到一个更准确的音频应用程序-audacity

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

感谢那些试图想出原因的人,特别是上面的海报,感谢他们花时间尝试和帮助