在游戏中声音是非常重要的一块,对于声音来说又分为音频和音乐,在这方面XNA也提供了很方便的方法用来管理和播放。
一.音频:一般用来播放一些很短的wav格式的音频,比如点击等声音效果。
Microsoft.Xna.Framework.Audio 命名空间中的SoundEffect包括了对Audio的处理API,如Play、Stop、Pause等还可以循环播放。
SoundEffect se = .Game.Content.Load(“Hit”);
se.GreateInstance().Play();//播放
se.GreateInstance().Stop();//停止
se.GreateInstance().Pause();//暂停
se.GreateInstance().Resume();//继续
se.GreateInstance().IsLooped = true;//循环播放
如果声音很多,就需要管理起来,可以在加载的时候把资源全部加到一个列表里进行管理,需要的时候再调出来用。
Dictionary AudioList //可以用Dictionary来保存所有声音资源,它的好处就是可以按名索引取资源。
SoundEffect se = Game.Content.Load(“声音资源名”);//载入声音资源
AudioList.Add(key, se.CreateInstance());//存储资源
AudioList[“声音资源名”].Play();//获取资源并播放
AudioList[“声音资源名”].State == SoundState.Playing //获取声音状态
二.音乐:可以播放mp3等格式的音乐。可以用来播放背景音乐。
Microsoft.Xna.Framework.Media 命名空间中的Song包括了对song的处理API,如音乐的名称、专辑、歌手、时间等的获取。但这个类不能用于对音乐的Play、Stop、Pause、Repeat等的操作,需要MediaPlayer这个静态类来实现。
Song = Content.Load(“Kalimba”);
MediaPlayer.IsRepeating = true;
MediaPlayer.Play(Song);
示例代码:http://www.daisy123.com/?page_id=275 xna sound