2012-03-22 84 views
1

我試圖讓我的XNA遊戲的背景音樂,但XNA中的選項都需要將音頻文件轉換爲.wav幷包含爲項目資源。這對我來說不起作用有兩個原因。首先,.wav文件是巨大的,並且對用戶沒有真正的好處。其次,如果用戶喜歡他們自己的音樂,用戶將無法擁有一個可替代的MP3文件夾。我有什麼選擇播放實際上不屬於該項目的MP3?在C#中播放的mp3不使用MediaPlayer或XACT

回答

5

經過大量搜索之後,我終於在App Hub論壇上找到了this線程,爲我提供了一個解決方案。

您可以使用Song.FromUri加載歌曲,然後使用MediaPlayer.Play(song)播放所述歌曲。

Uri songPath = new Uri("Songs/song.mp3", UriKind.Relative); 
Song song = Song.FromUri("song", songPath); 
MediaPlayer.Play(song); 

在你想用MediaPlayer的你的問題,你說(很明顯),但它好像就是因爲你首先需要將歌曲轉換的原因,它需要被納入項目資源。有了這個,歌曲只需要放在一個「Songs」目錄下(它將與可執行文件位於同一個目錄中)。

使用SoundEffect類也行不通,因爲你不得不使用TitleContainer.OpenStream,當我嘗試它時,它喜歡抱怨。