2011-07-12 61 views
3

以下函數調用在OpenAL 1.1中已棄用,什麼是正確的替換?我唯一能回答的地方就是「寫你自己的功能!!」 ;-)替換爲alutLoadWAV文件

alutLoadWAVFile 
alutUnloadWAV 

回答

1

「寫你自己」是非常正確的答案。

因爲大多數實現仍然包含WAV文件處理函數,所以您通常可以避免使用棄用的函數,但有一個值得注意的例外是iOS,您需要使用它來使用音頻文件服務。

我建議爲「加載wav文件」製作標準原型,然後根據操作系統使用不同的加載例程。您可以通過調用alutLoadWAVFile來存儲已知仍支持它的系統。

3

ALUT中有8個文件加載函數(不包括三個棄用函數alutLoadWAVFile,alutLoadWAVMemory和​​)。

該函數的前綴決定數據的去向;其中四個開始alutCreateBuffer(創建一個新的緩衝區並將聲音數據放入其中),另外四個開始alutLoadMemory(分配一個新的內存區域並將聲音數據放入其中)。

該函數的後綴決定了數據的來源。您的選項是FromFile(來自文件!),FromFileImage(來自內存區域),HelloWorld(修復某人說「Hello,world!」的內部數據)和Waveform(生成波形)。

我相信alutLoadWAVFile的正確替代品因此將是alutCreateBufferFromFile。但是,我不會盲目地使用它 - 它適用於短聲音剪輯,但例如,一個音樂曲目,你可能想要加載它在塊和排隊多個緩衝區,以減輕內存負載。順便說一句,這些功能都在alut documentation中。