问题

你想在XNA游戏中播放一个MP3或WMA声音文件。

解决方案

XNA可以使用默认内容管道将MP3或WMA声音文件加载到一个Song对象中,加载之后,就可以使用静态的MediaPlayer类播放Song对象了。

工作原理

首先将MP3或WMA文件添加到XNA项目中。这和添加一个图像是一样的,可参见教程3-1。最简单的方法就是将MP3或WMA文件拖动到Content文件夹上。

你需要一个Song对象链接到MP3或WMA文件上,在代码顶部添加这个对象:

Song mySong; 

在LoadContent方法中使用内容管道加载对象:

mySong=Content.Load<Song>(“Sample”); 

使用以下简单命令就可以播放文件了:

MediaPlayer.Play(mySong); 

MediaPlayer是一个静态类,一次只能播放一个声音,这对播放背景音乐是很理想的。但是,你需要像教程7-1中类似的方法在游戏中播放另一个声音。

Song对象和MediaPlayer类都有一些有用的属性,诸如歌的长度,当前歌的播放进度等:

TimeSpan toGo=mySong.Duration - MediaPlayer.PlayPositon; 
String myText = “Time remaining for current song:” + toGo.ToString();