AudioQueue播放中的空白
我正在努力使用我实施的AudioQueue音频播放器。 我最初认为它截断了它播放的音频的1/2,但是在加载较大的文件时,我会注意到每隔1秒2-1秒就会出现空档。 我在调试中运行它,并且我确认我正在用音频正确加载队列。 (队列中没有大的零区域。)它在模拟器上没有问题地播放(没有间隙),但是在设备上我得到了间隙,就好像它缺少了其他所有音频块一样。 在我的应用程序中,我解压缩,然后从内存NSMutableData对象中提取音频。 我将这些数据提供给音频队列。 我在播放波形音频的相同应用中有相应的实现,并且此示例在长短音频剪辑中没有问题。 我将wave的实现与减压的另一个进行比较。 两者之间的唯一区别是我如何发现音频元数据以及我在哪里获取音频样本排队。 在wave实现中,我使用AudioFileGetProperty和AudioFileReadPackets来获取这些数据。 在另一种情况下,我使用从我的解压缩器回调期间加载的缓存ivars手动获取数据。 元数据适用于压缩和波形实现。 我已经运行了乐器中的代码,并且在播放过程中,我的音频数据包传送/排队逻辑中看不到超过1ms的任何内容。 我完全失去了。 如果你有任何想法如何解决这个问题,请说出来。
我终于解决了这个问题。 我发现如果我跳过音频的第一个44字节(波头的确切大小),那么它在设备上正确播放。 无论我跳过44还是不跳过,它都可以在SIM卡上正确支付。 奇怪,我不知道为什么,但这是它的工作方式。
链接地址: http://www.djcxy.com/p/67015.html上一篇: AudioQueue gaps in playback
下一篇: Audio Toolbox playback only plays part of output buffers