如何在没有外部扬声器的情况下使计算机的内部扬声器在 C# 中发出哔哔声?
a_hardin
问问题
134995 次
6 回答
199
在 .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
于 2008-11-26T15:41:02.337 回答
155
你也可以使用相对未使用的:
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中找到
于 2008-11-26T15:47:01.607 回答
23
解决方案是,
Console.Beep
于 2008-11-26T15:40:21.653 回答
15
试试这个
Console.WriteLine("\a")
于 2008-11-26T15:40:27.563 回答
9
已确认Windows 7 和更新版本(至少 64 位或两者)不使用系统扬声器,而是将呼叫路由到默认声音设备。
因此,system.beep()
在 win7/8/10 中使用不会使用内部系统扬声器产生声音。相反,如果外部扬声器可用,您会听到哔哔声。
于 2016-07-04T04:30:22.703 回答
7
我只是在为自己寻找解决方案时遇到了这个问题。您可能会考虑通过运行一些 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)
于 2017-10-31T11:11:24.707 回答