Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C#

Phát âm thanh Beep tùy chỉnh qua Console trong C#

Mục đích

Phương thức Console.Beep() phát âm beep mặc định. Nạp chồng Console.Beep(int frequency, int duration) cho phép tùy chỉnh tần số (Hz) và thời lượng (ms). Chỉ hoạt động trên **Windows** có loa/buzzer PC.

Ví dụ 1: Beep cơ bản và có tham số

using System;

public class Demo
{
    public static void Main(string[] args)
    {
        Console.WriteLine("Standard Output Stream: " + Console.Out);
        Console.WriteLine("Phát beep mặc định...");
        Console.Beep();

        Console.WriteLine("Phát beep 1000Hz, 500ms...");
        Console.Beep(1000, 500);
    }
}

Kết quả

Standard Output Stream: System.IO.TextWriter+SyncTextWriter
Phát beep mặc định...
Phát beep 1000Hz, 500ms...

Ví dụ 2: Phát beep nhiều lần (melody đơn giản)

using System;
using System.Threading;

public class Demo
{
    public static void Main(string[] args)
    {
        Console.WriteLine("Standard Output Stream: " + Console.Out);
        Console.WriteLine("Beep mặc định...");
        Console.Beep();

        Console.WriteLine("Beep 1000Hz, 500ms...");
        Console.Beep(1000, 500);

        Console.WriteLine("Phát beep 1500Hz, 1000ms lặp 10 lần...");
        int freq = 1500;
        int duration = 1000;
        for (int i = 1; i < 10; i++)
        {
            Console.Beep(freq, duration);
            Thread.Sleep(100); // Nghỉ giữa các beep
        }
    }
}

Tham số hợp lệ

  • frequency: 37 - 32767 Hz (ngoài phạm vi -> ArgumentOutOfRangeException).
  • duration: > 0 ms (0 hoặc âm -> ArgumentOutOfRangeException).

Lưu ý quan trọng

  • Chỉ Windows. Linux/macOS: không có tiếng (hoặc ném PlatformNotSupportedException trên .NET Core cũ).
  • Dùng **PC speaker/buzzer** (mainboard), không qua loa âm thanh thông thường (trừ một số laptop cũ).
  • Trong VM/Remote Desktop/Container: thường không nghe được.
  • Không kiểm soát âm lượng.
  • Dùng cho: cảnh báo đơn giản, accessibility, debug không cần loa.

Thay thế hiện đại (Cross-platform)

// System.Media.SoundPlayer (Windows, .wav)
using System.Media;
new SoundPlayer("alert.wav").Play();

// NAudio (NuGet) - chơi mp3, wav, synth, cross-platform
// SkiaSharp / Silk.NET - audio context thấp hơn

Bảng tần số nốt nhạc (A4 = 440Hz)

NốtTần số (Hz)
C4 (Do)261.63
D4 (Re)293.66
E4 (Mi)329.63
F4 (Fa)349.23
G4 (Sol)392.00
A4 (La)440.00
B4 (Si)493.88
C5 (Do cao)523.25