WPF中,最简单最容易播放音频的方式是使用SoundPlayer类。它是.NET Framework 2.0的一部分,是对Win32 PlaySound API的封装。网络
它具备如下限制:异步
1)仅支持.wav音频文件;函数
2)不支持同时播放多个音频(任何新播放的操做将终止当前正在播放的);oop
3)没法控制声音的音量;spa
下面的代码展现了如何使用SoundPlayer播放声音:视频
SoundPlayer player = new SoundPlayer("BLOW.WAV");对象
player.Play();字符串
传递给SoundPlayer构造函数的字符串能够是本地的一个文件名,也能够是网络上的文件。调用Play方法将异步播放声音。若是想同步播放声音,可使用PlaySync方法。固然,想异步循环播放,可使用PlayLooping方法,直到你调用Stop或从新播放一个新的声音为止。同步
须要说明的是,声音文件直到第一次播放时才会被加载。若是声音文件的加载须要很长的时间,例如从网络来,使用同步播放,会致使UI死掉。出于这个缘由考虑,SoundPlayer类也定义了Load和LoadAsync方法以便在第一次播放以前提早加载声音文件。it
若是你想播放系统声音,但记不住他们的文件名,能够用SystemSounds类中的一些静态属性:Asterisk,Beep,Exclamation,Hand,Question。每一个类型都有本身的Play方法,用来异步播放系统声音。
2、使用WPF专用的MediaPlayer类。它是基于Windows Media Player构建起来的,所以,只要是Windows Media Player支持的格式,它都能播放(包括视频)。
MediaPlayer具备如下特性供你使用:
1)能够同时播放多个声音(建立多个MediaPlayer对象);
2)能够调整音量(Volume属性);
3)可使用Play,Pause,Stop等方法进行控制;
4)能够设置IsMuted属性为True来实现静音;
5)能够用Balance属性来调整左右扬声器的平衡;
6)能够经过SpeedRatio属性控制音频播放的速度;
7)能够经过NaturalDuration属性获得音频的长度,经过Position属性获得当前播放进度;
8)能够经过Position属性进行Seek;
使用MediaPlayer播放音频文件以下:
MediaPlayer player = new MediaPlayer ();
player.Open(new Uri("BLOW.WAV", UriKind.Relative));
player.Play();
一个MediaPlayer对象一次只能播放一个文件。并且该文件是异步播放的,你也能够调用Close来释放文件。
(提一下,MediaPlayer在XP下须要window media player比较高版本的支持,否则没有声音。SoundPlayer就不须要),这个有点略坑
3、使用COM组建的window media player。
看到调用的com组建足足有十几MB大小,果断放弃了,看网上其余人作的,效果应该还不错。