使用 OpenAL 重新加载声音

Reloading a sound using OpenAL

我已经成功加载并播放了一个声音剪辑,但想在应用程序 运行 时从磁盘更新它。我再次为我的剪辑调用 alBufferData,但出现无效操作错误。旧的和新的声音片段都是有效的并且可以独立工作,只是重新加载失败了。如何重新加载剪辑的声音数据?我在 OS X 上使用 OpenAL,但记得在 Windows 和 OpenAL-soft 上也有同样的问题。

alBufferData() 之前调用 alSourcei( srcID, AL_BUFFER, 0 ); 解决了问题。