摘要:結合XACT撥放音樂檔
在XNA的遊戲程式中,用XACT所建立的xap檔案來播放聲音。
首先在Start -> All Programs -> XNA Game Studio Express -> Tools -> Microsoft Cross-Platform Audio Creation Tool (XACT)。
如果在VISTA執行時,一直發生錯誤訊息,請將VISTA更新至最新版本。
開起來後,在左邊的Wave Bank按下右鍵選擇New Wave Bank,接著在,Sound bank按下右鍵選擇New Sound Bank。
開好以後,接下來把WAV聲音檔載入WaveBank中,新增完畢以後在將在Wave Bank 中的聲音檔用拖曳的方式拉到Sound Bank。
接著另存新檔,這樣XACT的工作就到這邊告一段段落了。
詳情請參考XNA的MSDN,裡面有完整的解說。在這邊我只是述說大概的步驟。
接下來,進入程式編輯的階段。
在Solution Explorer中,對著專案按下右鍵,增加已經存在的檔案,尋找剛剛建立好的.XAP檔。
程式部分這邊需要加入三個聲音相關的API,AudioEngine WaveBank SoundBank。
AudioEngine : 代表聲音引擎。應用程式使用聲音引擎的方法來處理和說明核心的聲音物件。
WaveBank : 代表一個wave bank,wave bank 是一個WAV檔案的集合,也就是剛剛處理加入的WAV檔。
SoundBank : 代表一個sound bank,是cue的集合。
接下來再Initialize函數中加入以下四行。
audioEngine = new AudioEngine( "TestSounds.xgs" );
這行的建構參數是跟XAP檔名相同的文件名稱,但是將副檔名改為.xgs。
waveBank = new WaveBank( audioEngine, "TestWaveBank.xwb" );
在建立WaveBank時,可以選擇更改Wave Bank的名稱,讓名字更簡單好記,WaveBank的這個物件使用的副檔名為.xwb。
soundBank = new SoundBank( audioEngine, "TestSoundBank.xsb" );
在建立SoundBank時,可以選擇更改SoundBank的名稱,讓名字更簡單好記,SoundBank的這個物件使用的副檔名為.xwb。
soundBank.PlayCue( "kaboom" );
再來接著用SoundBank的PlayCue來撥放聲音。
接下來進行編譯即可完成撥放聲音的動作。