WPF中的音频——(2)

         WPF中,最简单最容易播放音频的方式是使用SoundPlayer类。它是.NET Framework 2.0的一部分,是对Win32 PlaySound API的封装。

         它具有以下限制:

1)仅支持.wav音频文件;

2)不支持同时播放多个音频(任何新播放的操作将终止当前正在播放的);

3)无法控制声音的音量;

下面的代码展示了如何使用SoundPlayer播放声音:

    SoundPlayer player = new SoundPlayer("BLOW.WAV");

    player.Play();

传递给SoundPlayer构造函数的字符串可以是本地的一个文件名,也可以是网络上的文件。调用Play方法将异步播放声音。如果想同步播放声音,可以使用PlaySync方法。当然,想异步循环播放,可以使用PlayLooping方法,直到你调用Stop或重新播放一个新的声音为止。

         需要说明的是,声音文件直到第一次播放时才会被加载。如果声音文件的加载需要很长的时间,例如从网络来,使用同步播放,会导致UI死掉。出于这个原因考虑,SoundPlayer类也定义了LoadLoadAsync方法以便在第一次播放之前提前加载声音文件。

         如果你想播放系统声音,但记不住他们的文件名,可以用SystemSounds类中的一些静态属性:AsteriskBeepExclamationHandQuestion。每个类型都有自己的Play方法,用来异步播放系统声音。

posted on 2009-03-10 22:28  xirihanlin  阅读(2471)  评论(0编辑  收藏  举报