OpenAL 1.1 中不推荐使用以下函数调用,什么是正确的替换?我在谷歌上找到的唯一答案是“编写你自己的函数!!” ;-)
alutLoadWAVFile
alutUnloadWAV
最佳答案
ALUT 中有 8 个文件加载函数(不包括三个已弃用的函数 alutLoadWAVFile
、 alutLoadWAVMemory
和 alutUnloadWAV
)。
函数的前缀决定了数据的去向;其中四个启动alutCreateBuffer
(创建一个新的缓冲区并将声音数据放入其中),另外四个启动alutLoadMemory
(分配一个新的内存区域并将声音数据放入其中)。
函数的后缀决定了数据的来源。您的选项是 FromFile
(来自文件!)、FromFileImage
(来自内存区域)、HelloWorld
(某人说“你好,世界!”的固定内部数据)和 Waveform
(生成波形)。
因此,我相信 alutLoadWAVFile
的正确替代品应该是 alutCreateBufferFromFile
。
但是,我不会盲目地使用它 - 它适用于短的声音剪辑,但例如您可能希望将音乐轨道分块加载并排队多个缓冲区,以减轻内存负载。
顺便说一下,这些函数都包含在 alut documentation 中。
关于openal - alutLoadWAVFile 的替代品,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6667202/