我正在尝试为我的XNA游戏获取背景音乐,但XNA中的选项都要求将音频文件转换为.wav并作为项目资源包含在内。这对我来说不起作用有两个原因。首先,.wav文件非常庞大,对用户没有任何实际好处。其次,如果他们更喜欢自己的音乐,用户将无法拥有一个mp3替换文件夹。我有什么选择播放实际上不属于该项目的mp3?
答案 0 :(得分: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,但似乎原因是因为你首先需要转换歌曲它需要被列入项目资源。有了这个,这首歌只需要在“歌曲”目录中(与可执行文件位于同一目录中)。
使用SoundEffect
课程也不行,因为您必须使用TitleContainer.OpenStream
,我尝试时会抱怨。