在C#中播放mp3不使用MediaPlayer或XACT

Fib*_*con 1 c# audio xna background-music

我正在尝试为我的XNA游戏获取背景音乐,但XNA中的选项都要求将音频文件转换为.wav并作为项目资源包含在内.这对我来说不起作用有两个原因.首先,.wav文件非常庞大,对用户没有任何实际好处.其次,如果他们更喜欢自己的音乐,用户将无法拥有一个mp3替换文件夹.我有什么选择播放实际上不属于该项目的mp3?

Lan*_*der 5

经过大量的搜索,我终于在App Hub论坛上找到了这个线程,这给了我一个解决方案.

您可以使用Song.FromUri加载歌曲,然后MediaPlayer.Play(song)用来播放所说的歌曲.

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

在你的问题,你说(很明显),你希望使用的MediaPlayer,但它好像就是因为你首先需要将歌曲转换,它需要被列入项目资源的原因.有了这个,这首歌只需要在"歌曲"目录中(它与可执行文件位于同一目录中).

使用这个SoundEffect类也不会起作用,因为你必须使用TitleContainer.OpenStream它,当我尝试时它喜欢抱怨.