Suonare un file Wav usando il Framework 2.0 (o successivi) in C# e VB

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 deve essere inserito nelle risorse di progetto utilizzando
add existing file
dal menu del file Resources.resx fornito dall'assembly.

Il progettino di test completo con la form ed i suoni, lo trovate in area risorse DotNetWork sotto la voce Blog Code - Come suonare un file WAV in VB o C#

Tags: , >,

Print | posted on mercoledì 5 settembre 2007 21.34

Feedback

No comments posted yet.

Your comment:





 
Please add 2 and 2 and type the answer here:

Copyright © Sabrina C.

Design by Bartosz Brzezinski

Design by Phil Haack Based On A Design By Bartosz Brzezinski