Bagaimana cara membuat komputer berbunyi bip di C #?

105

Bagaimana cara membuat speaker internal komputer berbunyi bip di C # tanpa speaker eksternal?

a_hardin
sumber

Jawaban:

193

Di .Net 2.0, Anda dapat menggunakan Console.Beep ().

// Default beep
Console.Beep();

Anda juga dapat menentukan frekuensi dan panjang bunyi bip dalam milidetik.

// Beep at 5000 Hz for 1 second
Console.Beep(5000, 1000);

Untuk informasi lebih lanjut, lihat http://msdn.microsoft.com/en-us/library/8hftfeyw%28v=vs.110%29.aspx

a_hardin
sumber
11
Saya baru saja menguji di Win 7 x64 RC, dan meskipun speaker internal tidak berbunyi bip, ada bunyi bip melalui speaker saat saya memasangnya dan menyalakannya. Saya kira itu hanya speaker internal (mobo) yang tidak akan berbunyi bip. Terima kasih atas infonya @Lck.
a_hardin
22
Dan inilah alasannya: blogs.msdn.com/larryosterman/archive/2010/01/04/…
Michael Stum
3
Ini seharusnya berfungsi pada x64, tetapi suara akan keluar melalui speaker normal (yang dapat diredam). blogs.msdn.com/larryosterman/archive/2010/01/04/...
Tarnay Kálmán
saya memiliki x86 tetapi tidak ada suara yang diputar dari speaker internal! Hanya speaker eksternal? !!!!
Rafik Bari
1
@LorenzCK Itu ... tidak 100% benar? Saya memiliki Win7 64 dan saya dapat mendengar berbagai Beep()frekuensi melalui speaker eksternal. Namun, +1 untuk bagian internal, saya tidak pernah menyadarinya.
BK
146

Anda juga dapat menggunakan yang relatif tidak terpakai:

    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();

Dokumentasi untuk suara ini tersedia di http://msdn.microsoft.com/en-us/library/system.media.systemsounds(v=vs.110).aspx

Ta01
sumber
Sayangnya, suara sistem ini memerlukan speaker eksternal, yang tidak selalu dapat diandalkan. Ini pasti bagus untuk mengetahui ini!
a_hardin
1
Sekarang mengetahui bahwa Windows versi x64 membutuhkan speaker untuk mendengar Console.Beep (), opsi ini juga akan berfungsi.
a_hardin
4
Vista x64 saya di laptop dengan speaker inbuilt tidak memainkan Console.Beep () tetapi ini baik-baik saja.
Andy Dent
22

Solusinya adalah,

Console.Beep
Barry Kelly
sumber
14

Coba ini

Console.WriteLine("\a")

Chris Ballance
sumber
7

Dipastikan bahwa Windows 7 dan versi yang lebih baru (setidaknya 64bit atau keduanya) tidak menggunakan speaker sistem dan sebaliknya mereka merutekan panggilan ke perangkat suara default.

Jadi, menggunakan system.beep()win7 / 8/10 tidak akan menghasilkan suara menggunakan speaker sistem internal. Sebaliknya, Anda akan mendapatkan suara bip dari speaker eksternal jika tersedia.

kuma DK
sumber
Tapi tidak ada jaminan itu berfungsi / berbunyi bip melalui kartu suara. Pada mesin Windows 10 saya tidak ada bip - kartu suara tentu saja
berfungsi
4

Saya baru saja menemukan pertanyaan ini saat mencari solusi untuk diri saya sendiri. Anda mungkin mempertimbangkan untuk memanggil fungsi bip sistem dengan menjalankan beberapa hal dari 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
        }

Ini sama seperti Anda menjalankan PowerShell:

[console]::beep(1000, 1600)
[console]::beep(2000, 400)
Jakub Szumiato
sumber