异步加载并播放声音文件
实例说明
一般情况下,在加载某些文件时,如果都进行同步加载,那么将浪费很多不必要的时间,因为有些文件并不是用户想要的,因此应该实现异步加载,只加载需要的文件。本实例实现了异步加载并播放声音的功能,实例运行结果如图1所示。
图1 异步加载并播放声音文件
关键技术
本实例实现时主要用到SoundPlayer类,该类用来控制.wav文件中的声音播放。在播放.wav文件前,首先定位该文件的位置,此时用到该类的SoundLocation属性,该属性的功能是获取或设置要加载的.wav文件的文件路径或URL。然后用到该类的LoadAsync方法,该方法的作用是使用新线程从流或Web资源中加载.wav文件。下面对本实例中用到的关键技术进行详细的讲解。
(1)SoundLocation属性 该属性值的类型是System.String,它的作用是从中加载.wav文件的文件路径或URL,如果不存在文件路径,则为String.Empty。默认为String.Empty。其语法格式如下: public string SoundLocation { get; set; }
(2)LoadAsync方法 该方法用来从流中或者Web资源中异步加载文件,其语法格式如下: public void LoadAsync()
说明:程序中使用SoundPlayer类时,首先需要在命名空间区域添加System.Media命名空间。
设计过程
(1)打开Visual Studio 2008开发环境,新建一个Windows窗体应用程序,命名为AsynchronismLoadPlayVoice。
(2)更改默认窗体Form1的Name属性为Frm_Main,在该窗体中添加一个TextBox控件,用来显示所要播放的文件路径;添加两个Button控件,分别用来打开.wav文件和播放音乐文件。
(3)程序主要代码如下:
1 | private void play_Click(object sender,EventArgs e) |
秘笈心法
心法领悟008:使用Exception类捕捉异常。
所有.NET里的异常都可被称为Exception。虽然说异常多种多样,但基本上它们都是Exception。这个说法可以打一个简单比喻,就像是无论黑猫、白猫、花猫,它们都是“猫”一样。