Tôi có một ứng dụng Windows được viết bằng C # /. NET.
Làm cách nào để phát một âm thanh cụ thể khi nhấp vào nút?
Tôi có một ứng dụng Windows được viết bằng C # /. NET.
Làm cách nào để phát một âm thanh cụ thể khi nhấp vào nút?
Câu trả lời:
Bạn đã có thể sử dụng:
System.Media.SoundPlayer player = new System.Media.SoundPlayer(@"c:\mywavfile.wav");
player.Play();
Bạn có thể sử dụng SystemSound chẳng hạn System.Media.SystemSounds.Asterisk.Play();
.
Đối với Windows Forms, một cách là sử dụng SoundPlayer
private void Button_Click(object sender, EventArgs e)
{
using (var soundPlayer = new SoundPlayer(@"c:\Windows\Media\chimes.wav")) {
soundPlayer.Play(); // can also use soundPlayer.PlaySync()
}
}
Điều này cũng sẽ hoạt động với WPF, nhưng bạn có các tùy chọn khác như sử dụng MediaPlayer
trang MSDN
ButtonClick
, đơn giản vì nó có vẻ như nó theo phong cách đặt tên C # nhiều hơn.
Đây là một câu trả lời cấp cao cho các ứng dụng muốn hoàn toàn phù hợp với môi trường Windows. Chi tiết kỹ thuật của việc phát âm thanh cụ thể đã được cung cấp trong các câu trả lời khác. Bên cạnh đó, hãy luôn lưu ý hai điểm sau:
Sử dụng năm âm thanh hệ thống tiêu chuẩn trong các tình huống điển hình , tức là
Dấu hoa thị - phát khi bạn muốn đánh dấu sự kiện hiện tại
Câu hỏi - chơi với các câu hỏi (cửa sổ hộp thông báo hệ thống phát cửa sổ này)
Dấu chấm than - chơi với biểu tượng cảm thán (cửa sổ hộp thông báo hệ thống phát biểu tượng này)
Bíp (âm thanh hệ thống mặc định)
Dừng nghiêm trọng ("Tay") - chơi với lỗi (cửa sổ hộp thông báo hệ thống phát cái này)
Các phương pháp của lớp System.Media.SystemSounds
sẽ chơi chúng cho bạn.
Triển khai bất kỳ âm thanh nào khác mà người dùng của bạn có thể tùy chỉnh trong bảng điều khiển Âm thanh
System.Media.SystemSounds.Hand.Play(); Thread.Sleep(2000);
chơi âm thanh Bàn tay . Lưu ý rằng nó phát không đồng bộ, ở đây tôi đã thêm lệnh ngủ để chờ hoàn thành âm thanh. Nếu bạn không đợi và phát một âm thanh khác, âm thanh trước đó sẽ dừng ngay lập tức.
Đoạn mã bên dưới cho phép phát các tệp mp3 và các tệp sóng trong bộ nhớ
player.FileName = "123.mp3";
player.Play();
từ http://alvas.net/alvas.audio,samples.aspx#sample6 hoặc
Player pl = new Player();
byte[] arr = File.ReadAllBytes(@"in.wav");
pl.Play(arr);
Để phát tệp âm thanh trong biểu mẫu Windows bằng C #, hãy kiểm tra ví dụ đơn giản như sau:
1. Go Visual Studio (VS-2008/2010/2012) -> File Menu -> nhấp vào New Project.
2.Trong Dự án mới -> nhấp vào Ứng dụng biểu mẫu Windows -> Đặt tên và sau đó nhấp vào OK.
Một dự án "Windows Forms" mới sẽ mở ra.
3. Kéo-và-thả điều khiển Nút từ Hộp công cụ vào Biểu mẫu Windows.
4. Nhấp đúp vào nút để tự động tạo trình xử lý sự kiện Nhấp chuột mặc định và thêm mã sau.
Đoạn mã này hiển thị hộp thoại File Open và chuyển kết quả đến một phương thức có tên "playSound" mà bạn sẽ tạo trong bước tiếp theo.
OpenFileDialog dialog = new OpenFileDialog();
dialog.Filter = "Audio Files (.wav)|*.wav";
if(dialog.ShowDialog() == DialogResult.OK)
{
string path = dialog.FileName;
playSound(path);
}
5.Thêm mã phương pháp sau vào trình xử lý sự kiện button1_Click.
private void playSound(string path)
{
System.Media.SoundPlayer player = new System.Media.SoundPlayer();
player.SoundLocation = path;
player.Load();
player.Play();
}
6.Bây giờ, hãy chạy ứng dụng chỉ bằng cách Nhấn F5 để chạy mã.
7. nhấp vào nút và chọn một tệp âm thanh. Sau khi tải tệp, âm thanh sẽ phát.
Tôi hy vọng đây là ví dụ hữu ích cho người mới bắt đầu ...
Tôi nghĩ trước tiên bạn phải thêm tệp .wav vào Tài nguyên. Ví dụ: bạn có tệp âm thanh có tên Sound.wav. Sau khi bạn thêm tệp Sound.wav vào Tài nguyên, bạn có thể sử dụng mã này:
System.Media.SoundPlayer player = new System.Media.SoundPlayer(Properties.Resources.Sound);
player.Play();
Đây là một cách khác để phát âm thanh.