Suonare un file Wav in C# e VB Cat: C#, Win, Beginners Tags:C#, Beginners,classi, Csharp, helper Date: 09/05/2007
Una delle lacune che credo tutti abbiamo notato usando il Framework.net 1.0 o 1.1 è che non era stata inserita all’interno di .NET una classe per poter emettere un suono, pertanto era necessario ricorrere ad un wrapper per una API oppure ad accrocchi che utilizzavano Media Player o altro.
Nel Framework 2.0 e successivi, per quelle che sono le esigenze di base di un programmatore, che può aver bisogno di avvisare con un suono del termine di una elaborazione oppure ricordare qualcosa all’utente o avvisare di un errore senza usare solo le messagebox, è stata introdotta la classe SoundPlayer, che pure essendo limitata a dover suonare solo files di tipo WAV, permette di suonare un file posto su disco oppure un file inserito come risorsa all’interno di un assembly .NET.
Il codice per fare tutto questo è molto semplice:
In C#
private const string TXT_Notifica = "xfiles.wav"; ///<summary> /// Evento che viene generato al click del bottone suono da file ///</summary> /// <param name="sender">Oggetto che ha scatenato l'evento</param> /// <param name="e">Argomenti relativi all'evento</param> ///<remarks> //</remarks> private void btnSoundfromFile_Click(object sender, EventArgs e) { SoundPlayer snd = new SoundPlayer(TXT_Notifica); snd.Play(); } ///<summary> /// Evento che viene generato al click del bottone suono da risorsa ///</summary> /// <param name="sender">Oggetto che ha scatenato l'evento</param> /// <param name="e">Argomenti relativi all'evento</param> ///<remarks> ///</remarks> private void btnSoundfromresource_Click(object sender, EventArgs e) { SoundPlayer snd = new SoundPlayer(Properties.Resources.notifica); snd.Play(); }
In VB
Private Const TXT_Notifica As String = "xfiles.wav"
'''<summary> ''' Evento che viene generato al click del bottone suono da file '''</summary> ''' <param name="sender">Oggetto che ha scatenato l'evento</param> ''' <param name="e">Argomenti relativi all'evento</param> '''<remarks> '''</remarks> Private Sub btnSoundfromFile_Click(ByVal sender As Object, ByVal e As EventArgs) Handles btnSoundfromFile.Click Dim snd As New SoundPlayer(TXT_Notifica) snd.Play() End Sub '''<summary> ''' Evento che viene generato al click del bottone suono da risorsa '''</summary> ''' <param name="sender">Oggetto che ha scatenato l'evento</param> ''' <param name="e">Argomenti relativi all'evento</param> '''<remarks> '''</remarks> Private Sub btnSoundfromresource_Click(ByVal sender As Object, _ ByVal e As EventArgs) Handles btnSoundFromresource.Click Dim snd As New SoundPlayer(my.Resources.notifica) snd.Play() End Sub
Il file WAV può essere inserito nelle risorse di progetto utilizzando
add existing file
dal menu del file Resources.resx fornito dall’assembly.
Nota: 21/1/2017 il progetto originale è andato perduto negli spostamenti da un tipo di blog all’altro, pertanto è stato ricostruito un progettino più semplice che può essere scaricato dal link qui sotto.