如何在没有外部扬声器的情况下使计算机的内部扬声器在C#中发出蜂鸣声?
答案 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)