使用简单音频引擎的声音循环之间的轻微停顿

Posted

技术标签:

【中文标题】使用简单音频引擎的声音循环之间的轻微停顿【英文标题】:Slight pause between sound loop with Simple Audio Engine 【发布时间】:2012-06-08 19:22:41 【问题描述】:

在使用 playBackgroundMusic loop:YES 的 Simple Audio Engine 中播放背景音乐时,在音频循环回到开头并重新开始之前似乎有一点延迟。有什么办法可以防止这种轻微的停顿吗?

【问题讨论】:

出于好奇,您引入的声音文件格式是什么? 我曾经使用 mp3,但后来我了解到 iPhone/iPod Touch 硬件一次只能解码一个 mp3。因此,我决定将我所有的声音文件都转换为 CAF,甚至是音效。这很糟糕吗? 其实没有,我也发现了同样的东西。在我制作的游戏中,我决定将背景音乐设为 MP3(出于文件大小的原因),而 SoundFX 采用未压缩格式。您是否在 CAF 文件中进行任何压缩? 【参考方案1】:

暂停实际上是 MP3 编码/压缩算法的产物。通过对流的“最后一帧”和第一帧进行一些数学运算,有一些方法可以抑制暂停。为此存在一些软件工具。为此,我最终使用了 Winamp pro,使用内置的 LAME 编码器。

有关这方面的更多信息,请查看here

【讨论】:

【参考方案2】:

我尝试了 MP3Loop 实用程序,它对我很有帮助。使用此实用程序转换后的 Mp3 文件作为背景音乐循环播放,没有任何延迟。但它仅适用于 Windows。 http://www.compuphase.com/mp3/mp3loops.htm

【讨论】:

以上是关于使用简单音频引擎的声音循环之间的轻微停顿的主要内容,如果未能解决你的问题,请参考以下文章

如何混合两个音频通道?

解决笔记本输出音频用手机耳机有轻微电流或有一个声道不响

FFmpeg音频的播放

iOS:使用 playInputClick 与带有音频工具箱的 (1104) 声音文件之间是不是存在性能差异?

使用 Matlab 检测两个音频文件中多次点击声音之间的延迟

使用网络音频 api 播放简单的声音