如何让计算机在C#中发出蜂鸣声?

时间:2008-11-26 15:38:54

标签: c# .net audio beep

如何在没有外部扬声器的情况下使计算机的内部扬声器在C#中发出蜂鸣声?

6 个答案:

答案 0 :(得分:181)

在.Net 2.0中,您可以使用Console.Beep()。

// Default beep
Console.Beep();

您还可以指定蜂鸣声的频率和长度(以毫秒为单位)。

// Beep at 5000 Hz for 1 second
Console.Beep(5000, 1000);

有关更多信息,请参阅http://msdn.microsoft.com/en-us/library/8hftfeyw%28v=vs.110%29.aspx

答案 1 :(得分:136)

您还可以使用相对未使用的:

    System.Media.SystemSounds.Beep.Play();
    System.Media.SystemSounds.Asterisk.Play();
    System.Media.SystemSounds.Exclamation.Play();
    System.Media.SystemSounds.Question.Play();
    System.Media.SystemSounds.Hand.Play();

http://msdn.microsoft.com/en-us/library/system.media.systemsounds(v=vs.110).aspx

中提供了此声音的文档

答案 2 :(得分:21)

Console.Beep

答案 3 :(得分:11)

试试这个

Console.WriteLine("\a")

答案 4 :(得分:6)

确认 win7及更新版本(至少64位或两者)不使用系统扬声器,而是将呼叫路由到默认声音设备。

因此,在win7 / 8/10中使用system.beep()将无法使用内部系统扬声器发声。但是,如果外接扬声器可用,您将发出哔声。

答案 5 :(得分:3)

我在为自己寻找解决方案时遇到过这个问题。 您可以考虑通过运行一些kernel32来调用系统蜂鸣声功能。

using System.Runtime.InteropServices;
        [DllImport("kernel32.dll")]
        public static extern bool Beep(int freq, int duration);

        public static void TestBeeps()
        {
            Beep(1000, 1600); //low frequency, longer sound
            Beep(2000, 400); //high frequency, short sound
        }

这与运行powershell相同:

[console]::beep(1000, 1600)
[console]::beep(2000, 400)