Làm cách nào để tạo tiếng bíp cho máy tính trong C #?


105

Làm cách nào để làm cho loa trong của máy tính phát ra tiếng bíp trong C # mà không có loa ngoài?

Câu trả lời:


193

Trong .Net 2.0, bạn có thể sử dụng Console.Beep ().

// Default beep
Console.Beep();

Bạn cũng có thể chỉ định tần suất và độ dài của tiếng bíp tính bằng mili giây.

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

Để biết thêm thông tin, hãy tham khảo http://msdn.microsoft.com/en-us/library/8hftfeyw%28v=vs.110%29.aspx


11
Tôi vừa thử nghiệm trong Win 7 x64 RC và mặc dù loa trong không phát ra tiếng bíp, nhưng vẫn có tiếng bíp phát ra từ loa khi tôi cắm và bật chúng. Tôi đoán đó chỉ là loa bên trong (mobo) không phát ra tiếng bíp. Cảm ơn vì thông tin @Lck.
a_hardin


3
Nó sẽ hoạt động trên x64, nhưng âm thanh sẽ phát ra qua loa bình thường (có thể bị tắt tiếng). blogs.msdn.com/larryosterman/archive/2010/01/04/...
Tarnay Kálmán

Tôi có x86 nhưng không có âm thanh nào được phát từ loa trong! Chỉ có loa ngoài? !!!!
Rafik Bari

1
@LorenzCK Điều đó ... không đúng 100%? Tôi có Win7 64 và tôi có thể nghe thấy đầy đủ Beep()các tần số thông qua loa ngoài. Tuy nhiên, +1 cho phần nội bộ, tôi chưa bao giờ nhận ra điều đó.
BK

146

Bạn cũng có thể sử dụng tương đối không sử dụng:

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

Tài liệu về âm thanh này hiện có trong http://msdn.microsoft.com/en-us/library/system.media.systemsounds(v=vs.110).aspx


Rất tiếc, những âm thanh hệ thống này yêu cầu loa ngoài, không phải lúc nào cũng có thể đếm được. Tuy nhiên, chắc chắn là tốt khi biết những điều này!
a_hardin

1
Bây giờ biết rằng các phiên bản x64 của Windows yêu cầu loa nghe được Console.Beep (), các tùy chọn này cũng sẽ hoạt động.
a_hardin

4
Vista x64 của tôi trên máy tính xách tay có loa tích hợp không chơi được Console.Beep () nhưng những thứ này vẫn ổn.
Andy Dent



7

Người ta xác nhận rằng Windows 7 và các phiên bản mới hơn (ít nhất là 64bit hoặc cả hai) không sử dụng loa hệ thống và thay vào đó chúng định tuyến cuộc gọi đến thiết bị âm thanh mặc định.

Vì vậy, sử dụng system.beep()trong win7 / 8/10 sẽ không tạo ra âm thanh bằng loa hệ thống bên trong. Thay vào đó, bạn sẽ nhận được âm thanh bíp từ loa ngoài nếu chúng khả dụng.


Nhưng không có gì đảm bảo rằng nó hoạt động / phát ra tiếng bíp qua card âm thanh. Trên máy tính Windows 10 tôi không có tiếng bíp - card âm thanh làm việc tất nhiên
hfrmobile

4

Tôi vừa bắt gặp câu hỏi này khi đang tìm kiếm giải pháp cho chính mình. Bạn có thể cân nhắc việc gọi hàm tiếng bíp của hệ thống bằng cách chạy một số thứ trong 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
        }

Điều này giống như bạn sẽ chạy powershell:

[console]::beep(1000, 1600)
[console]::beep(2000, 400)
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.