La gestione mediante il componente gb.openal
Da Gambas-it.org - Wikipedia.
Versione del 23 ott 2013 alle 18:10 di Vuott (Discussione | contributi)
Con la revisione 5753 di Gambas-3 è stato aggiunto il componente: gb.openal che utilizza le risorse dell'API di Openal.
E' possibile eseguire un file audio mediante le risorse delle seguenti Classi del componente gb.openal:
- Al ed Alure |1|
Indice
Eseguire un file audio con le risorse della Classe Al e della Classe Alure
Vi sono almeno due modalità per eseguire un file audio mediante le risorse della Classe Al e della Classe Alure del componente gb.openal.
E' possibile riprodurre file audio dei seguenti tipi:
- WAV;
- MP3;
- OGG.
1a modalità
Public Sub Main() Dim percorsoFile As String = "/percorso/del/file/audio" Dim src, lungh, isdone As Integer Dim ast As Alurestream ' Inizializza la libreria "Alure": Alure.InitDevice(Null, Null) src = Al.GenSources(1)[0] ' Individua la lunghezza del file audio caricato da eseguire: lungh = Stat(percorsoFile).Size ast = Alure.CreateStreamFromFile(percorsoFile, lungh, 0) ' Esegue il flusso di dati audio. ' Il terzo parametro della funzione rappresenta il numero dei buffer utilizzati da accodare alla fonte di "OpenAL". ' Ogni buffer verrà riempito con la lunghezza del "chunk" specificato quando il flusso è stato creato. ' Tale valore nell'esecuzione di un file audio deve essere di almeno 2. Alure.PlaySourceStream(src, ast, 3, 0) ' Attende che l'esecuzione sia terminata: While isdone = 0 Alure.Update() Wend End
2a modalità
Public Sub Main() Dim buffer, source As Integer ' Inizializza la libreria "Alure": alure.InitDevice(Null, Null) buffer = alure.CreateBufferFromFile("/percorso/del/file/audio") ' Crea una sorgente sonora: source = al.GenSources(1)[0] ' Viene utilizzata la variabile "buffer" per riempire la sorgente. ' Il secondo argomento indica al buffer di fornire campioni sonori:</font> al.Sourcei(source, al.BUFFER, buffer) ' Esegue il flusso di dati audio. al.SourcePlay(source) ' Attende che l'esecuzione sia terminata: While state = 0 Alure.Update() Wend End
Note
[1] La Classe Alure del componente gb.openal consente di gestire le funzioni di ALURE, che è una libreria di supporto di Openal.