AudioQueue播放中的空白

时间:2010-08-08 20:05:18

标签: iphone core-audio

我正在努力使用我实施的AudioQueue音频播放器。我最初认为它截断了它播放的第一个音频的1/2,但在加载较大的文件时,我注意到每隔1 / 2-1秒的间隙。我在调试中运行它,我已经确认我正在使用音频正确加载队列。 (队列中没有加载大的零区域。)它在模拟器上没有问题(没有间隙),但在设备上我得到间隙,好像它丢失了所有其他音频块。在我的应用程序中,我解压缩然后从内存NSMutableData对象拉取音频。我将此数据提供给音频队列。我在相同的应用程序中有相应的实现播放波形音频,这个例子在长​​短音频剪辑上没有问题。我正在将wave实现与另一个执行解压缩的实现进行比较。两者之间的唯一区别是我如何发现音频元数据以及我在哪里获取用于入队的音频样本。在wave实现中,我使用AudioFileGetProperty和AudioFileReadPackets来获取此数据。在另一种情况下,我使用在我的解压缩程序的回调期间加载的缓存的ivars来预先获取数据。元数据与压缩和波形实现相匹配。我在仪器中运行代码,在播放期间我的音频数据包传送/排队逻辑中没有看到任何超过1ms的内容。我完全迷失了。如果你有任何想法如何解决问题,请说出来。

1 个答案:

答案 0 :(得分:0)

我终于解决了这个问题。我发现如果我跳过音频的前44个字节(波形标题的确切大小),那么它会在设备上正确播放。无论我是否跳过44,它都能在SIM卡上正确支付。奇怪,我不知道为什么,但这就是它的工作方式。