0%

异步加载并播放声音文件

  • 来源:明日科技
  • 异步加载并播放声音文件

    实例说明

    一般情况下,在加载某些文件时,如果都进行同步加载,那么将浪费很多不必要的时间,因为有些文件并不是用户想要的,因此应该实现异步加载,只加载需要的文件。本实例实现了异步加载并播放声音的功能,实例运行结果如图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
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    private void play_Click(object sender,EventArgs e)
    {
    try
    {
    SoundPlayer player = new SoundPlayer(); //声明一个控制WAV文件的声音播放文件对象
    player.SoundLocation = path.Text; //指定声音文件的路径
    player.LoadAsync(); //设置播放的方法
    player.Play(); //播放声音文件
    }
    catch (Exception ex)
    {
    MessageBox.Show(ex.Message);
    }
    }

    秘笈心法

    心法领悟008:使用Exception类捕捉异常。
    所有.NET里的异常都可被称为Exception。虽然说异常多种多样,但基本上它们都是Exception。这个说法可以打一个简单比喻,就像是无论黑猫、白猫、花猫,它们都是“猫”一样。

    觉得文章有用?请我喝杯咖啡~