\\ Home : Articoli : Stampa
Riprodurre audio con audiovideo
Di robydx (del 10/09/2010 @ 23:24:21, in DirectX9, linkato 2267 volte)

Semplicemente "Audio" è il nome del primo oggetto che andremo ad utilizzare nella libreria AudioVideoPlayback. Questo componente il cui nome è diverso dalla solita dicitura DirectQualcosa nasce per semplificare la gestione di file multimediali nelle applicazioni e nei giochi. Come per le altre parti di DirectX anche questa può lavorare da sola e la cosa risulta utile per chi vuole realizzare lettori multimediali ad applicativi analoghi. Ovviamente il componente si adatta anche per i giochi sostituendo il vecchio Direct Music della precedente versione. Questo ha portato a delle rinunce soprattutto per alcuni tipi di effetti realizzabili con i midi (tipo audio 3D) ma anche a dei miglioramenti come la gestione di mp3 e soprattutto dei video (che vedremo nel prossimo tutorial). Il risultato è sicuramente qualcosa di più adatto agli ambienti VB soprattutto per la tanto desiderata stabilità (a quante persone dava sui nervi il fatto che spesso il midi continuava a girare finchè non si spegnesse il computer quando veniva generato un errore?).
Per utilizzare AudioVideo occorre aggiungere i relativi riferimenti.

Microsoft.DirectX
Microsoft.DirectX.AudioVideoPlayback

Dal menù progetto e poi ad aggiungi riferimenti. In ogni modulo in cui usate gli oggetti audio video conviene aggiungere questi imports

Imports Microsoft.DirectX
Imports Microsoft.DirectX.AudioVideoPlayback

Ora iniziamo ad utilizzare l'oggetto audio. Dichiarate un oggetto di questo tipo

Dim audio1 As Audio

e createlo

audio1 = New Audio(FileName)

Filename è una stringa con il percorso completo del file.
L'oggetto audio è ora creato!!!!!!!!
Ora non ci resta che adoperarlo utilizzando alcune delle opzioni in esso contenuto.
audio1.Play() :esegue il brano
audio1.Stop() :ferma il brano
audio1.Pause() :pausa il brano (attenzione, al play il brano ritorna all'inizio ed è necessario un riposizionamento).
audio1.CurrentPosition : potete usare questa proprietà per ottenere la posizione in secondi del brano o per settare una posizione. Come inserirete un nuovo valore il brano arriverà lì.
audio1.Volume : per settare o ottenere il volume del brano. Attenzione che 0 è il massimo e -10000 il minimo (si lavora con l'attenuazione dei decibel che non è comunque lineare).
audio1.Balance :per settare o ottenere il bilanciamento tra le casse tra -10000 a +10000 (0 è il centro).
audio1.Duration :ottiene la durata del brano
audio1.State : come digiterete l'uguale compariranno tre stati (pausa, stop, running). Se lo stato è uguale ad uno di quei tre il brano si trova in quello stato; ad es if audio1.State=StateFlags.Running then ...
Infine se una delle proprietà accessibili da
audio1.SeekingCaps.
è uguale a true allora il brano permette quella azione.
Ricordate di fermare il brano prima di caricarne un altro o potrebbero sentirsi due brani in contemporanea (basta chiudere il programma e tutto torna come prima). I brani non necessitano neanche di essere fermati prima di chiudere l'applicazione dato che si fermeranno automaticamente.
Audio permette di riprodurre tutti i tipi di file audio supportati dal vostro computer (wave, midi, MP3, wma etcc). Provate a riprodurre un brano con mediaplayer e se funziona allora può essere inserito nei programmi. Non esiste limite ai brani che potete riprodurre contemporaneamente se non la potenza del vostro PC. Vi lascio ad un semplice esempio.

Esempio VB.Net

Esempio C#