Compact Framework eseguire un file audio

In questo articolo vedremo come eseguire un file audio, in ambiente smart device, tramite il Compact Framework 2.0. Vedremo l'utilizzo delle api in Windows Mobile 5.0, in particolare per gli smartphone.

il
Sviluppatore Microsoft .Net, Collaboratore di IProgrammatori

In ambiente mobile, può essere utile utilizzare i file audio, nel formato .wav. In questo articolo vedremo come utilizzare le api di windows mobile, in particolare l'api PlaySound della dll coredll.

l'esempio utilizzato sarà per il dispositivo windows mobile smartphone, nella parte conclusiva dell'articolo è possibile scaricare il file di esempio utilizzato in questo articolo.

Creazione del progetto.

Si crea un nuovo progetto di tipo smart device, aggiungiamo al progetto un file audio di tipo .wav.  Aggiungiamo due voci di menu, uno che avvia l'esecuzione del file audio ed il secondo, che blocca l'esecuzione del file audio, il tutto come mostrato in figura 1.

Figura 1

Stesura del codice

A questo punto non ci resta che scrivere il codice per eseguire il nostro file audio, per far si dobbiamo ricorrere alle funzioni api. Dobbiamo aggiungere a livello di form, la dichiarazione di api, la funzione che avrà il compito di eseguire il file audio.

Di seguito si riporta il frammento di codice delle suddette operazioni.

VB.Net
 Declare Function PlaySound Lib "coredll.dll" (ByVal pszSound As String, ByVal hMod As IntPtr, ByVal fdwSound As Integer) As Integer
C#
 [System.Runtime.InteropServices.DllImport("coredll.dll")]static extern int PlaySound(string pszSound, IntPtr hMod, int fdwSound);

Sempre a livello di form, occorre creare delle costanti, che permettono di impostare l'avvio del suono, come il loop, ossia il suono in modalità continua.

Di seguito si riporta il frammento di codice delle suddette operazioni.

VB.Net
 Const SND_SYNC As Integer = &H0
Const SND_ASYNC As Integer = &H1
Const SND_LOOP As Integer = &H8
Const SND_FILENAME As Integer = &H20000
C#
 const int SND_FILENAME = 0x20000;
const int SND_SYNC = 0x0;
const int SND_ASYNC = 0x1;
const int SND_LOOP = 0x8;

La voce di menu con la scritta Avvia suono, dovrà avviare il file audio, in modalità loop.

Di seguito si riporta il codice di tale operazione.

 VB.Net

 

Private Sub MenuItem4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MenuItem4.Click

Dim File As String = "\Program Files\DeviceSPSuono\brano.wav"

PlaySound(File, IntPtr.Zero, SND_FILENAME Or SND_ASYNC Or SND_LOOP)

End Sub 

C#

 

private void menuItem3_Click(object sender, EventArgs e)
{
string file = "\\Program Files\\DeviceSPSuonoCS\\brano.wav";
PlaySound(file, IntPtr.Zero, SND_FILENAME | SND_ASYNC | SND_LOOP);
}



Per fermare l'esecuzione del suono, si richiama sempre la funzione di api playsound, ma questa volta come parametro, si passa null, per l'argomento dove e richiesto nome del file.
Di seguito si riporta il frammento di codice di tali operazioni.
VB.Net
 

Private Sub MenuItem3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MenuItem3.Click

PlaySound(Nothing, IntPtr.Zero, 0)

End Sub

C#

private void menuItem2_Click(object sender, EventArgs e)

{

PlaySound(null, IntPtr.Zero, 0);

}

Conclusioni.
Ora non ci resta che avviare il programma, ed eseguire il programma, come si è visto tramite l'utilizzo delle api di windows mobile, è possibile eseguire e fermare i file audio.
Tramite la parola download potete scaricare il file di esempio utilizzato nell'articolo.