1

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

4

1 回答 1

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);

在您的问题中,您说(很明显)您不想使用 MediaPlayer,但似乎原因是因为您首先需要转换歌曲并且它需要包含在项目资源中。有了这个,歌曲只需要在“歌曲”目录中(与可执行文件位于同一目录中)。

使用SoundEffect该类也不起作用,因为您必须使用TitleContainer.OpenStream,当我尝试它时它喜欢抱怨。

于 2012-03-22T04:29:38.183 回答