ฉันจะทำให้คอมพิวเตอร์ส่งเสียงบี๊บใน C # ได้อย่างไร


108

ฉันจะทำให้ลำโพงภายในของคอมพิวเตอร์ส่งเสียงบี๊บใน C # โดยไม่มีลำโพงภายนอกได้อย่างไร

คำตอบ:


195

ใน. 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


11
ฉันเพิ่งทดสอบใน Win 7 x64 RC และแม้ว่าลำโพงภายในจะไม่ส่งเสียงบี๊บ แต่ก็มีเสียงบี๊บผ่านลำโพงเมื่อฉันเสียบปลั๊กและเปิด ฉันเดาว่ามันเป็นแค่ลำโพงภายใน (mobo) ที่จะไม่ส่งเสียงบี๊บ ขอบคุณสำหรับข้อมูล @Lck
a_hardin

22
และนี่คือเหตุผล: blogs.msdn.com/larryosterman/archive/2010/01/04/…
Michael Stum

3
มันควรจะทำงานบน x64 แต่เสียงจะออกมาจากลำโพงปกติ (ซึ่งสามารถปิดเสียงได้) blogs.msdn.com/larryosterman/archive/2010/01/04/…
Tarnay Kálmán

ฉันมี x86 แต่ไม่มีเสียงเล่นจากลำโพงภายใน! ลำโพงภายนอกเท่านั้น !!!!
Rafik Bari

1
@LorenzCK นั่น ... ไม่จริง 100%? ฉันมี Win7 64 และฉันสามารถได้ยินBeep()ความถี่เต็มช่วงผ่านลำโพงภายนอก อย่างไรก็ตาม +1 สำหรับส่วนภายในฉันไม่เคยรู้มาก่อน
BK

148

คุณยังสามารถใช้สิ่งที่ค่อนข้างไม่ได้ใช้:

    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


น่าเสียดายที่ระบบเสียงเหล่านี้ต้องใช้ลำโพงภายนอกซึ่งไม่สามารถนับได้เสมอไป เป็นเรื่องดีที่จะรู้ว่าสิ่งเหล่านี้!
a_hardin

1
ตอนนี้ทราบแล้วว่า Windows เวอร์ชัน x64 ต้องการลำโพงเพื่อฟัง Console เสียงบี๊บ () ตัวเลือกเหล่านี้ก็จะทำงานได้เช่นกัน
a_hardin

4
Vista x64 ของฉันบนแล็ปท็อปที่มีลำโพงในตัวไม่เล่น Console เสียงบี๊บ () แต่ก็ใช้ได้
Andy Dent



7

ได้รับการยืนยันว่าWindows 7 และเวอร์ชันที่ใหม่กว่า (อย่างน้อย 64 บิตหรือทั้งสองอย่าง) ไม่ได้ใช้ลำโพงระบบและจะกำหนดเส้นทางการโทรไปยังอุปกรณ์เสียงเริ่มต้นแทน

ดังนั้นการใช้system.beep()ใน win7 / 8/10 จะไม่สร้างเสียงโดยใช้ลำโพงระบบภายใน แต่คุณจะได้รับเสียงบี๊บจากลำโพงภายนอกหากมี


แต่ไม่มีการรับประกันว่าจะทำงาน / ส่งเสียงบี๊บผ่านการ์ดเสียง ในเครื่อง Windows 10 ของฉันไม่มีเสียงบี๊บ - การ์ดเสียงใช้งานได้แน่นอน
hfrmobile

4

ฉันเพิ่งเจอคำถามนี้ในขณะที่ค้นหาวิธีแก้ปัญหาด้วยตัวเอง คุณอาจพิจารณาเรียกใช้ฟังก์ชัน 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)
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.