Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/328.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 从窗口选择声音并播放它们_C#_.net_Winforms_Alerts_System Sounds - Fatal编程技术网

C# 从窗口选择声音并播放它们

C# 从窗口选择声音并播放它们,c#,.net,winforms,alerts,system-sounds,C#,.net,Winforms,Alerts,System Sounds,我有一个WinForms应用程序。此应用程序有一个首选项部分,用户可以在其中选择在显示警报时播放哪些声音 是否可以有一个组合框,用户可以从Windows中选择存储的声音,如“紧急停止”、“紧急嘟嘟声”等。这些可在“控制面板”>>“声音和警报”部分找到 是否也可以使用播放按钮来测试声音?播放系统声音不需要任何API,只需编写如下代码: // Plays the sound associated with the Asterisk system event. System.Media.SystemS

我有一个WinForms应用程序。此应用程序有一个首选项部分,用户可以在其中选择在显示警报时播放哪些声音

是否可以有一个组合框,用户可以从Windows中选择存储的声音,如“紧急停止”、“紧急嘟嘟声”等。这些可在“控制面板”>>“声音和警报”部分找到


是否也可以使用播放按钮来测试声音?

播放系统声音不需要任何API,只需编写如下代码:

// Plays the sound associated with the Asterisk system event.
System.Media.SystemSounds.Asterisk.Play();
SoundPlayer simpleSound = new SoundPlayer(@"c:\Path\To\Your\Wave\File.wav");
该类包含以下预定义的系统声音:

  • 星号
  • 嘟嘟声
  • 感叹号
  • 问题:
所有其他声音都要求您从注册表中读取所需的声音,并使用如下代码播放:

// Plays the sound associated with the Asterisk system event.
System.Media.SystemSounds.Asterisk.Play();
SoundPlayer simpleSound = new SoundPlayer(@"c:\Path\To\Your\Wave\File.wav");

当然您要查找的所有声音都可以通过获取,这些声音与触发声音的事件类型对应

此外,的对象提供了一个可以调用以异步播放该声音的

例如,要播放“临界停止”声音,只需编写以下代码:

System.Media.SystemSounds.Hand.Play();
试试这个:

    private void Form1_Load(object sender, EventArgs e)
    {

        var systemSounds = new[]
                              {
                                  System.Media.SystemSounds.Asterisk,
                                  System.Media.SystemSounds.Beep,
                                  System.Media.SystemSounds.Exclamation,
                                  System.Media.SystemSounds.Hand,
                                  System.Media.SystemSounds.Question
                              };

        comboBox1.DataSource = systemSounds;

        comboBox1.SelectedIndexChanged += new EventHandler(comboBox1_SelectedIndexChanged);
    }

    void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
    {
        ((System.Media.SystemSound)comboBox1.SelectedItem).Play();
    }

声音集是可扩展的,也许您注意到了VisualStudio构建的声音?在superuser.com上询问它们在注册表中的存储位置。尽量避免重新设计Windows的标准部件。