2011-03-04 14 views
10

Bir WinForms uygulamasına sahibim. Bu uygulama, kullanıcının bir uyarı görüntülendiğinde hangi seslerin oynatılacağını seçebileceği Tercihler bölümüne sahiptir.Windows seslerini seçme ve çalma

Kullanıcının, "kritik durma", "kritik bip" vb. Windows saklanan seslerden seçebileceği bir birleşik kutunun olması mümkün mü? Bunlar "Denetim Masası" >> "Sesler ve Uyarılar" bölümünde bulunur.

Sesleri test etmek için bir oynatma düğmesine sahip olmak da mümkün mü?

// Plays the sound associated with the Asterisk system event. 
System.Media.SystemSounds.Asterisk.Play(); 

SystemSounds sınıfı aşağıdaki önceden tanımlanmış sistem sesleri içerir: Sen sistemini oynamak için herhangi bir API gerektirmeyen

+0

seslerin seti, genişletilebilir belki vardır Visual Studio oluşturma sesleri fark ettiniz mi? Kayıt defterinde saklandıkları superuser.com'a sorun. Windows'un standart parçalarını yeniden tasarlamayı denemeyin. –

cevap

10

deneyin:

private void Form1_Load(object sender, EventArgs e) 
    { 

     var systemSounds = new[] 
           { 
            System.Media.SystemSounds.Asterisk, 
            System.Media.SystemSounds.Beep, 
            System.Media.SystemSounds.Exclamation, 
            System.Media.SystemSounds.Hand, 
            System.Media.SystemSounds.Question 
           }; 

     comboBox1.DataSource = systemSounds; 

     comboBox1.SelectedIndexChanged += new EventHandler(comboBox1_SelectedIndexChanged); 
    } 

    void comboBox1_SelectedIndexChanged(object sender, EventArgs e) 
    { 
     ((System.Media.SystemSound)comboBox1.SelectedItem).Play(); 
    } 
11

sadece bu gibi kod yazmak sesler

  • Asterisk
  • Bip
  • Exclamation
  • El
  • Soru

Diğer tüm sesler kayıt defterinden istenilen sesi okuyup böyle koduyla oynamak gerektirir:

SoundPlayer simpleSound = new SoundPlayer(@"c:\Path\To\Your\Wave\File.wav"); 
8

Tabii! Aradığınız tüm sesler System.Media.SystemSounds class aracılığıyla sağlanabilir, burada sesleri tetikleyen olay türlerine karşılık gelen public properties. Ayrıca, SystemSound class nesnesinin nesneleri, bu sesi eşzamansız olarak yürütmek için arayabileceğiniz Play method sağlar.

Yani, örneğin, "Kritik Dur" sesi çalmak için, sadece aşağıdaki kodu yazarsınız:

System.Media.SystemSounds.Hand.Play();