OpenAL和Popping Artifacts

时间:2011-03-19 03:38:58

标签: iphone ios ipad openal

我正在使用OpenAL作为iPad的音乐应用。它之前运行良好,但是现在,在将我的设备更新到iOS 4.3后,播放时会出现爆裂/噼啪声。当播放多个样本(即和弦)时,它们变得明显,并且在已经播放第一个或第二个样本之后,在新样本开始时发生。除了这些伪像之外,其余的音频输出都是正常的。

我缓冲每个乐器的音频数据,为每个要播放的声音创建一个音源,并将源附加到缓存的缓冲区。使用alBufferDataStaticProc()

将缓冲区附加到音频数据样本

我还更改了AL上下文的AL_FREQUENCY以匹配文件的采样频率(16 khz),但这只能解决当要播放的样本(源)的AL_PITCH值为1时的问题。那么肯定是什么是如果你改变AL_PITCH,你改变源的输出频率,这将与AL上下文的输出频率不匹配,导致问题

一些代码是从Finch借来的,它完成了很多数据初始化。以下是源代码的网址:https://github.com/zoul/Finch

我期待任何指示。

1 个答案:

答案 0 :(得分:0)

  

在第1或第2个样本播放后,它们变得明显

您是否正在向缓冲区添加未初始化的数据?可能是排队未完全填充的数组的结果。