WPF中的音频应用

WPF中的音频很容易使用,但它不是革命性的技术,也没有采用最新的硬件优势,只是对Win32Windows Media Player现有功能的包装。因此,单单使用WPF,你可能无法创建一个专业的音频应用程序,但可以使用音乐和音效来为应用程序增色添彩。

         WPF中,你可以用多种方式实现音频的播放,但每一种都有优缺点。要实现音频的播放,可以有以下几个类供选择:

1SoundPlayer

2SoundPlayerAction

3MediaPlayer

4MediaElementMediaTimeline

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 @ 2011-12-20 00:36  therockthe  阅读(297)  评论(0)    收藏  举报