ฉันมีแอปพลิเคชัน Windows ที่เขียนด้วยภาษา C # /. NET
ฉันจะเล่นเสียงเฉพาะเมื่อคลิกปุ่มได้อย่างไร?
ฉันมีแอปพลิเคชัน Windows ที่เขียนด้วยภาษา C # /. NET
ฉันจะเล่นเสียงเฉพาะเมื่อคลิกปุ่มได้อย่างไร?
คำตอบ:
คุณสามารถใช้:
System.Media.SoundPlayer player = new System.Media.SoundPlayer(@"c:\mywavfile.wav");
player.Play();
คุณสามารถใช้SystemSoundตัวอย่างเช่นSystem.Media.SystemSounds.Asterisk.Play();
.
สำหรับ Windows Forms วิธีหนึ่งคือการใช้ไฟล์ 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()
}
}
สิ่งนี้จะใช้ได้กับ WPF เช่นกัน แต่คุณมีตัวเลือกอื่น ๆ เช่นใช้MediaPlayer
MSDN page
ButtonClick
นั้นเป็นเพียงเพราะดูเหมือนว่าจะเป็นไปตามสไตล์การตั้งชื่อ C # มากกว่า
นี่เป็นคำตอบระดับสูงสำหรับแอปพลิเคชันที่ต้องการให้เข้ากับสภาพแวดล้อม Windows ได้อย่างราบรื่น รายละเอียดทางเทคนิคของการเล่นเสียงเฉพาะมีอยู่ในคำตอบอื่น ๆ นอกจากนั้นโปรดสังเกตสองประเด็นนี้เสมอ:
ใช้เสียงระบบมาตรฐานห้าเสียงในสถานการณ์ทั่วไปเช่น
เครื่องหมายดอกจัน - เล่นเมื่อคุณต้องการเน้นเหตุการณ์ปัจจุบัน
คำถาม - เล่นกับคำถาม (หน้าต่างกล่องข้อความระบบเล่นอันนี้)
อัศเจรีย์ - เล่นด้วยไอคอน excalamation (หน้าต่างกล่องข้อความระบบเล่นอันนี้)
เสียงเตือน (เสียงระบบเริ่มต้น)
หยุดวิกฤต ("มือ") - เล่นโดยมีข้อผิดพลาด (หน้าต่างกล่องข้อความระบบเล่นอันนี้)
วิธีการเรียนSystem.Media.SystemSounds
จะเล่นให้คุณ
ใช้เสียงอื่น ๆ ตามที่ผู้ใช้ของคุณปรับแต่งได้ในแผงควบคุมเสียง
System.Media.SystemSounds.Hand.Play(); Thread.Sleep(2000);
เล่นเสียงมือ โปรดทราบว่ามันเล่นแบบอะซิงโครนัสที่นี่ฉันได้เพิ่มคำสั่ง sleep เพื่อรอให้เสียงเสร็จสิ้น หากคุณไม่รอและเล่นเสียงอื่นเสียงก่อนหน้าจะหยุดทันที
Code bellow ช่วยให้เล่นไฟล์ mp3 และไฟล์ wave-ในหน่วยความจำได้ด้วย
player.FileName = "123.mp3";
player.Play();
จากhttp://alvas.net/alvas.audio,samples.aspx#sample6หรือ
Player pl = new Player();
byte[] arr = File.ReadAllBytes(@"in.wav");
pl.Play(arr);
ในการเล่นไฟล์เสียงในรูปแบบ Windows โดยใช้ C # ลองตรวจสอบตัวอย่างง่ายๆดังนี้:
1. ไปที่ Visual Studio (VS-2008/2010/2012) -> เมนูไฟล์ -> คลิกโครงการใหม่
2. ใน New Project -> คลิก Windows Forms Application -> Give Name จากนั้นคลิก OK
โครงการ "Windows Forms" ใหม่จะเปิดขึ้น
3. ลากและวางปุ่มควบคุมจากกล่องเครื่องมือไปยังแบบฟอร์ม Windows
4. ดับเบิลคลิกที่ปุ่มเพื่อสร้างตัวจัดการเหตุการณ์คลิกเริ่มต้นโดยอัตโนมัติและเพิ่มรหัสต่อไปนี้
รหัสนี้จะแสดงกล่องโต้ตอบเปิดไฟล์และส่งผลลัพธ์ไปยังเมธอดชื่อ "playSound" ที่คุณจะสร้างในขั้นตอนถัดไป
OpenFileDialog dialog = new OpenFileDialog();
dialog.Filter = "Audio Files (.wav)|*.wav";
if(dialog.ShowDialog() == DialogResult.OK)
{
string path = dialog.FileName;
playSound(path);
}
5. เพิ่มรหัสวิธีการต่อไปนี้ใต้ตัวจัดการเหตุการณ์ button1_Click
private void playSound(string path)
{
System.Media.SoundPlayer player = new System.Media.SoundPlayer();
player.SoundLocation = path;
player.Load();
player.Play();
}
6. ตอนนี้ให้เรียกใช้แอปพลิเคชันเพียงแค่กด F5 เพื่อเรียกใช้รหัส
7. คลิกปุ่มและเลือกไฟล์เสียง หลังจากโหลดไฟล์แล้วเสียงจะเล่น
หวังว่านี่จะเป็นตัวอย่างที่มีประโยชน์สำหรับผู้เริ่มต้น ...
ฉันคิดว่าคุณต้องเพิ่มไฟล์. wav ในทรัพยากรก่อน ตัวอย่างเช่นคุณมีไฟล์เสียงชื่อ Sound.wav หลังจากที่คุณเพิ่มไฟล์ Sound.wav ลงในทรัพยากรคุณสามารถใช้รหัสนี้:
System.Media.SoundPlayer player = new System.Media.SoundPlayer(Properties.Resources.Sound);
player.Play();
นี่เป็นอีกวิธีหนึ่งในการเล่นเสียง