How do I make the computer's internal speaker beep in C# without external speakers?
解决办法就是,
Console.Beep
打印 贝尔的角色(ASCII 码7)。可以使用警报/报警 1中的转义序列 \a。
\a
Console.WriteLine("\a")
1 \b表示退格
\b
在.Net 2.0中,您可以使用 Console.Beep。
// Default beep Console.Beep();
You can also specify the frequency and length of the beep in milliseconds.
// Beep at 5000 Hz for 1 second Console.Beep(5000, 1000);
使用 System.Media.SystemSounds获得各种事件的声音,然后 演奏他们:
System.Media.SystemSounds
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();
经确认,Windows7和更新的版本(至少64位或两者兼有) 不要使用系统扬声器,而不是他们路由到默认声音设备的呼叫。
因此,在 win7/8/10中使用 system.beep()不会使用内部系统扬声器产生声音。相反,如果外部扬声器可用的话,你会听到它们发出的嘟嘟声。
system.beep()
我只是在为自己寻找解决方案的过程中偶然发现了这个问题。 您可以考虑通过运行一些 kernel 32内容来调用 system beep 函数。
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)