ฉันจะทำให้ลำโพงภายในของคอมพิวเตอร์ส่งเสียงบี๊บใน C # โดยไม่มีลำโพงภายนอกได้อย่างไร
ฉันจะทำให้ลำโพงภายในของคอมพิวเตอร์ส่งเสียงบี๊บใน C # โดยไม่มีลำโพงภายนอกได้อย่างไร
คำตอบ:
ใน. 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
Beep()
ความถี่เต็มช่วงผ่านลำโพงภายนอก อย่างไรก็ตาม +1 สำหรับส่วนภายในฉันไม่เคยรู้มาก่อน
คุณยังสามารถใช้สิ่งที่ค่อนข้างไม่ได้ใช้:
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
วิธีแก้ปัญหาคือ
Console.Beep
ลองทำตามนี้
Console.WriteLine("\a")
ได้รับการยืนยันว่าWindows 7 และเวอร์ชันที่ใหม่กว่า (อย่างน้อย 64 บิตหรือทั้งสองอย่าง) ไม่ได้ใช้ลำโพงระบบและจะกำหนดเส้นทางการโทรไปยังอุปกรณ์เสียงเริ่มต้นแทน
ดังนั้นการใช้system.beep()
ใน win7 / 8/10 จะไม่สร้างเสียงโดยใช้ลำโพงระบบภายใน แต่คุณจะได้รับเสียงบี๊บจากลำโพงภายนอกหากมี
ฉันเพิ่งเจอคำถามนี้ในขณะที่ค้นหาวิธีแก้ปัญหาด้วยตัวเอง คุณอาจพิจารณาเรียกใช้ฟังก์ชัน beep ของระบบโดยเรียกใช้ 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)