具有AudioRenderCallback和AudioUnitRenderFlag的复音

时间:2011-04-07 02:25:40

标签: core-audio audiounit bitflags

我对核心音频/音频设备有所了解,所以请原谅我这是不是很明显。

如果我想允许五个声音,我需要混音器上的5个总线和至少5个缓冲器,如果我想要5个不同的声音。我已经想出了一种通过检查时间和使用开始时间来安排笔记的基本方法。我想我应该使用ioActionFlags来指示我何时渲染沉默,但我不知道如何。

我问,因为有2辆公共汽车,当一个人沉默一会儿但另一个人玩的时候,我会嗡嗡作响。

1 个答案:

答案 0 :(得分:1)

如果你正在嗡嗡作响,它可能就是所谓的“撒旦锯”,这是一种锯齿状的声音,由一个未清除的缓冲器一次又一次地从通道中播放而产生。除了以这种方式重复的沉默之外的任何声音都听起来有点像锯齿波。

当您渲染静音时,您应该将输出缓冲区中的所有样本清除为0.0f以获取给定的声音。我认为没有办法阻止回调尝试获取样本,而且无论如何,这是一个比摆弄系统渲染设置更容易(也更便于移植)的解决方案。