我如何编码我的WinForms应用程序播放系统声音

本文关键字:应用程序 WinForms 播放 系统 声音 我的 何编码 编码 | 更新日期: 2023-09-27 18:03:17

对于c++,有一个函数PlaySound,可以用来播放声音。c#中有类似的东西吗?我有一个应用程序,我想在它启动时播放系统声音,以宣布它的启动。

一定有办法的。我希望。

我想把它放在Form_Load事件的末尾:

private void Form1_Load(object sender, EventArgs e)
{
    /* 
       A bunch of configuration and initialization stuff
    */
    PlayBeepBoop();
}
private void PlayBeepBoop()
{
    PlaySystemSound("Beep");
}

我如何编码我的WinForms应用程序播放系统声音

有一个SystemSounds类听起来可能是你想要的:

SystemSounds.Beep.Play();

它对应于你在Windows声音设置中设置为"默认哔哔声"的任何wav文件

我知道有三种播放系统声音的方法。

最常见的是要打印的与语言无关的'a字符,它发出非常标准的哔哔声。

Console.WriteLine("'a");



第二种方法可以让你直接使用一些发音,比如"感叹号"answers"手"。它们位于SystemSounds类中(来自Systems.Media命名空间),使用非常简单。

SystemSounds.Hand.Play();



最后,最后一种方法使您可以访问所有其他Windows系统声音。您所要做的就是创建一个同样位于Systems.Media名称空间的SoundPlayer,并用它手动加载声音。所有的系统声音都位于同一个位置,所以这很容易做到。

new System.Media.SoundPlayer(@"C:'Windows'Media'tada.wav").Play();

你可以使用这个类来播放任何"。wav"格式的声音。例如,您可以在"C:' windows 'Media"(windows 7)中找到windows声音。

public class Wav
{
    [DllImport("winmm.dll", CharSet = CharSet.Auto)]
    private static extern bool PlaySound(String lpszName, IntPtr hModule, Int32 dwFlags);
    public static bool Play(string wavFileName)
    {
        try
        {
            return PlaySound(wavFileName, IntPtr.Zero, 0);
        }
        catch
        {
            return false;
        }
    }
}