在OpenAL 1.1中不推荐使用以下函数调用,什么是正确的替换?我在谷歌找到的答案只是“写你自己的功能!!” ; - )
alutLoadWAVFile
alutUnloadWAV
答案 0 :(得分:4)
ALUT中有8个文件加载函数(不包括三个已弃用的函数alutLoadWAVFile
,alutLoadWAVMemory
和alutUnloadWAV
)。
函数的前缀决定了数据的去向;其中四个启动alutCreateBuffer
(创建一个新缓冲区并将声音数据放入其中),另外四个启动alutLoadMemory
(分配一个新的内存区域并将声音数据放入其中)。
该函数的后缀确定数据的来源。您的选项是FromFile
(来自文件!),FromFileImage
(来自内存区域),HelloWorld
(某人说“Hello,world!”的固定内部数据)和{{ 1}}(生成波形)。
我认为Waveform
的正确替换为alutLoadWAVFile
。
然而,我不会盲目地使用它 - 它适用于短声音片段,但对于例如一个音乐曲目你可能想要以块的形式加载并排队多个缓冲区,以减轻内存负担。
顺便说一下,alut documentation涵盖了这些功能。
答案 1 :(得分:1)
“自己写”是非常正确的答案。
您通常可以使用已弃用的函数,因为大多数实现仍然包含WAV文件处理函数,其中一个值得注意的例外是iOS,您需要使用音频文件服务。
我建议为“加载wav文件”制作标准原型,然后根据操作系统,使用不同的加载例程。您可以通过调用alutLoadWAVFile来存储已知仍然支持它的系统。