2012-03-22 83 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,当我尝试它时,它喜欢抱怨。