Bilgisayardan C # 'da nasıl bip sesi çıkarabilirim?


105

Bilgisayarın dahili hoparlörünün harici hoparlörler olmadan C # ile nasıl bip sesi çıkarabilirim?

Yanıtlar:


193

.Net 2.0'da Console.Beep () kullanabilirsiniz.

// Default beep
Console.Beep();

Ayrıca bip sesinin sıklığını ve uzunluğunu milisaniye cinsinden belirleyebilirsiniz.

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

Daha fazla bilgi için http://msdn.microsoft.com/en-us/library/8hftfeyw%28v=vs.110%29.aspx adresine bakın.


11
Win 7 x64 RC'de test ettim ve dahili hoparlör bip sesi çıkarmamasına rağmen, onları takıp açtığımda hoparlörlerden bir bip sesi geldi. Sanırım bip sesi çıkarmayacak sadece dahili (mobo) hoparlör. @Lck bilgisi için teşekkürler.
a_hardin


3
X64 üzerinde çalışmalıdır, ancak ses normal hoparlörlerden çıkacaktır (sessizleştirilebilir). blogs.msdn.com/larryosterman/archive/2010/01/04/…
Tarnay Kálmán

x86'm var ama dahili hoparlörden ses gelmiyor! Sadece harici hoparlör mü? !!!!
Rafik Bari

1
@LorenzCK Bu ...% 100 doğru değil mi? Win7 64'üm var ve Beep()harici hoparlörlerden tam bir frekans aralığını duyabiliyorum . Ancak iç kısım için +1, bunu hiç fark etmedim.
BK

146

Ayrıca nispeten kullanılmayanları da kullanabilirsiniz:

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

Bu sesler için belgeler http://msdn.microsoft.com/en-us/library/system.media.systemsounds(v=vs.110).aspx adresinde mevcuttur.


Maalesef bu sistem sesleri, her zaman güvenilemeyen harici hoparlörler gerektirir. Bunları bilmek kesinlikle güzel!
a_hardin

1
Artık Windows'un x64 sürümlerinin hoparlörlerin Console.Beep () 'i duymasını gerektirdiğini bildiğimizde, bu seçenekler de aynı şekilde çalışacaktır.
a_hardin

4
Dahili hoparlörlü dizüstü bilgisayarımdaki Vista x64'üm Console.Beep () oynatmıyor ancak bunlar sorun değil.
Andy Dent 08



7

Windows 7 ve daha yeni sürümlerin (en az 64 bit veya her ikisi) sistem hoparlörünü kullanmadığı ve bunun yerine aramayı varsayılan ses cihazına yönlendirdikleri onaylanmıştır .

Bu nedenle, system.beep()win7 / 8 / 10'da kullanmak dahili sistem hoparlörü kullanarak ses üretmeyecektir. Bunun yerine, varsa harici hoparlörlerden bir bip sesi alırsınız.


Ancak ses kartından çalıştığının / bip sesi çıkardığının garantisi yoktur. Windows 10 makinemde bip sesi yok - ses kartı elbette çalışıyor
hfrmobile

4

Kendime çözüm ararken bu soruyla karşılaştım. Bazı kernel32 öğelerini çalıştırarak sistem bip işlevini çağırmayı düşünebilirsiniz.

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
        }

Bu, powershell'i çalıştırdığınızla aynıdır:

[console]::beep(1000, 1600)
[console]::beep(2000, 400)
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.