在AudioSource的输入处生成音频

时间:2017-01-09 15:59:33

标签: c# audio unity3d

我想在Unity中AudioSource的输入处生成音频。

我已尝试使用OnAudioFilterRead() MonoBehaviour,但这只允许您在 AudioSource之后更改音频数据,这会绕过任何空间化/投球/增益等AudioSource组件。

我还想过使用AudioClip作为缓冲区,用音频数据填充它,然后将其加载到AudioSource中,但我不认为这可以在不知道的情况下完成缓冲区大小,并能够在读取每个缓冲区时加载新剪辑。由于每个新缓冲区都是必需的,因此没有方法可以读入AudioClip

有没有办法在之前更改AudioSource 的音频数据,它会通过音频源的空间化/投球/增益等?

1 个答案:

答案 0 :(得分:0)

我自己解决了这个问题。这是一个愚蠢的错误。正确阅读OnAudioFilterRead的文档后,我发现它声明:

  

音频数据是一个浮点数组,范围从[-1.0f; 1.0f]和   包含链中前一个过滤器或AudioClip的音频   在AudioSource上。如果这是链中的第一个过滤器和a   剪辑未附加到音频源,此过滤器将被播放'。   这样,您可以在程序上使用过滤器作为音频剪辑   生成音频。

我在AudioSource中有一个音频片段,它阻止OnFilterRead成为DSP链中的第一个进程。删除音频剪辑解决了问题!