我正在尝试让XNA游戏使用背景音乐,但是XNA中的选项都要求将音频文件转换为.wav并作为项目资源包括在内。这对我不起作用有两个原因。首先,.wav文件巨大,对用户没有任何实际好处。其次,如果他们喜欢自己的音乐,用户将无法拥有mp3文件夹来替代。对于播放实际上不是项目一部分的mp3,我有哪些选择?
最佳答案
经过大量搜索之后,我终于在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
,它在我尝试时喜欢抱怨。