我想在Unity中AudioSource
的输入处生成音频。
我已尝试使用OnAudioFilterRead()
MonoBehaviour,但这只允许您在 AudioSource
之后更改音频数据,这会绕过任何空间化/投球/增益等AudioSource
组件。
我还想过使用AudioClip
作为缓冲区,用音频数据填充它,然后将其加载到AudioSource
中,但我不认为这可以在不知道的情况下完成缓冲区大小,并能够在读取每个缓冲区时加载新剪辑。由于每个新缓冲区都是必需的,因此没有方法可以读入AudioClip
。
有没有办法在之前更改AudioSource
的音频数据,它会通过音频源的空间化/投球/增益等?
答案 0 :(得分:0)
OnAudioFilterRead
的文档后,我发现它声明:
音频数据是一个浮点数组,范围从[-1.0f; 1.0f]和 包含链中前一个过滤器或AudioClip的音频 在AudioSource上。如果这是链中的第一个过滤器和a 剪辑未附加到音频源,此过滤器将被播放'。 这样,您可以在程序上使用过滤器作为音频剪辑 生成音频。
我在AudioSource
中有一个音频片段,它阻止OnFilterRead
成为DSP链中的第一个进程。删除音频剪辑解决了问题!