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

本文关键字:播放 MP3 XACT MediaPlayer | 更新日期: 2023-09-27 18:28:31

我正试图为我的XNA游戏提供背景音乐,但XNA中的所有选项都要求将音频文件转换为.wav并作为项目资源包含。这对我不起作用有两个原因。首先,.wav文件是巨大的,对用户没有真正的好处。其次,如果用户喜欢自己的音乐,他们将无法有一个MP3文件夹来代替。我有什么选择来播放实际上不是项目一部分的MP3?

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

经过大量搜索,我终于在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,但原因似乎是因为你首先需要转换歌曲,并且它需要包含在项目资源中。这样,歌曲只需要在"Songs"目录中(与可执行文件位于同一目录中)。

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