Differenze tra le versioni di "La gestione mediante il componente gb.openal"
Da Gambas-it.org - Wikipedia.
Riga 24: | Riga 24: | ||
<FONT color=gray>' ''Inizializza la libreria "Alure":''</font> | <FONT color=gray>' ''Inizializza la libreria "Alure":''</font> | ||
err = Alure.InitDevice(Null, Null) | err = Alure.InitDevice(Null, Null) | ||
− | If err = False Then Error.Raise("Impossibile inizializzare la libreria 'Alure' !) | + | If err = False Then Error.Raise("Impossibile inizializzare la libreria 'Alure' !") |
'''End''' | '''End''' | ||
Riga 69: | Riga 69: | ||
− | '''Public''' Sub | + | '''Public''' Sub Button2_Click() <FONT color=gray>' ''Arresta l'esecusione del file audio''</font> |
al.SourceStop(src) | al.SourceStop(src) | ||
Riga 77: | Riga 77: | ||
===2<SUP>a</sup> modalità=== | ===2<SUP>a</sup> modalità=== | ||
− | ''' | + | '''Private''' source As Integer |
− | |||
− | |||
+ | '''Public''' Sub Form_Open() | ||
+ | |||
+ | Dim err As Boolean | ||
+ | |||
+ | <FONT color=gray>' ''Inizializza la libreria "Alure":''</font> | ||
+ | err = Alure.InitDevice(Null, Null) | ||
+ | If err = False Then Error.Raise("Impossibile inizializzare la libreria 'Alure' !") | ||
+ | |||
+ | '''End''' | ||
+ | |||
+ | |||
+ | '''Public''' Sub Button1_Click() <FONT color=gray>' ''Avvia l'esecusione del file audio''</font> | ||
+ | |||
+ | Dim buffer As Integer | ||
− | |||
− | |||
− | |||
buffer = alure.CreateBufferFromFile("''/percorso/del/file/audio''") | buffer = alure.CreateBufferFromFile("''/percorso/del/file/audio''") | ||
Riga 103: | Riga 112: | ||
Wend | Wend | ||
+ | '''End''' | ||
+ | |||
+ | |||
+ | '''Public''' Sub ToggleButton1_Click() | ||
+ | |||
+ | If ToggleButton1.Value | ||
+ | <FONT color=gray>' ''Mette in pausa l'esecusione del file audio''</font> | ||
+ | al.SourcePause(source) | ||
+ | Else | ||
+ | <FONT color=gray>' ''Fa proseguire l'esecusione del file audio''</font> | ||
+ | al.SourcePlay(source) | ||
+ | Endif | ||
+ | |||
+ | '''End''' | ||
+ | |||
+ | |||
+ | '''Public''' Sub Button2_Click() <FONT color=gray>' ''Arresta l'esecusione del file audio''</font> | ||
+ | |||
+ | al.SourceStop(source) | ||
+ | |||
'''End''' | '''End''' | ||
===3<SUP>a</sup> modalità=== | ===3<SUP>a</sup> modalità=== | ||
− | '''Private''' | + | '''Private''' ags As Integer |
− | '''Public''' Sub | + | '''Public''' Sub Form_Open() |
+ | Dim err As Boolean | ||
+ | |||
+ | <FONT color=gray>' ''Inizializza la libreria "Alure":''</font> | ||
+ | err = Alure.InitDevice(Null, Null) | ||
+ | If err = False Then Error.Raise("Impossibile inizializzare la libreria 'Alure' !") | ||
+ | |||
+ | '''End''' | ||
+ | |||
+ | |||
+ | '''Public''' Sub Button1_Click() <FONT color=gray>' ''Avvia l'esecusione del file audio''</font> | ||
+ | |||
Dim err As Boolean | Dim err As Boolean | ||
Dim fileAudio As String = "''/percorso/del/file/audio''" | Dim fileAudio As String = "''/percorso/del/file/audio''" | ||
− | Dim | + | Dim agb As Integer |
− | |||
− | |||
− | |||
− | |||
<FONT color=gray>' ''Genera le sorgenti sonore ed i buffer:''</font> | <FONT color=gray>' ''Genera le sorgenti sonore ed i buffer:''</font> | ||
Riga 127: | Riga 163: | ||
err = alure.BufferDataFromFile(fileAudio, agb) | err = alure.BufferDataFromFile(fileAudio, agb) | ||
− | If | + | If err = False Then Error.Raise("Impossibile creare un buffer-data dal file audio !") |
al.Sourcei(ags, al.BUFFER, agb) | al.Sourcei(ags, al.BUFFER, agb) | ||
Riga 138: | Riga 174: | ||
Wend | Wend | ||
+ | '''End''' | ||
+ | |||
+ | |||
+ | '''Public''' Sub ToggleButton1_Click() | ||
+ | |||
+ | If ToggleButton1.Value | ||
+ | <FONT color=gray>' ''Mette in pausa l'esecusione del file audio''</font> | ||
+ | al.SourcePause(ags) | ||
+ | Else | ||
+ | <FONT color=gray>' ''Fa proseguire l'esecusione del file audio''</font> | ||
+ | al.SourcePlay(ags) | ||
+ | Endif | ||
+ | |||
+ | '''End''' | ||
+ | |||
+ | |||
+ | '''Public''' Sub Button2_Click() <FONT color=gray>' ''Arresta l'esecusione del file audio''</font> | ||
+ | |||
+ | al.SourceStop(ags) | ||
+ | |||
'''End''' | '''End''' | ||
Versione delle 14:58, 24 ott 2013
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 tre 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à
Private src As Integer Public Sub Form_Open() Dim err As Boolean ' Inizializza la libreria "Alure": err = Alure.InitDevice(Null, Null) If err = False Then Error.Raise("Impossibile inizializzare la libreria 'Alure' !") End Public Sub Button1_Click() ' Avvia l'esecusione del file audio Dim percorsoFile As String = "/percorso/del/file/audio" Dim src, lungh As Integer Dim ast As Alurestream 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) While True Wait 0.001 Wend End Public Sub ToggleButton1_Click() If ToggleButton1.Value ' Mette in pausa l'esecusione del file audio al.SourcePause(src) Else ' Fa proseguire l'esecusione del file audio al.SourcePlay(src) Endif End Public Sub Button2_Click() ' Arresta l'esecusione del file audio al.SourceStop(src) End
2a modalità
Private source As Integer Public Sub Form_Open() Dim err As Boolean ' Inizializza la libreria "Alure": err = Alure.InitDevice(Null, Null) If err = False Then Error.Raise("Impossibile inizializzare la libreria 'Alure' !") End Public Sub Button1_Click() ' Avvia l'esecusione del file audio Dim buffer As Integer 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) While True Wait 0.001 Wend End Public Sub ToggleButton1_Click() If ToggleButton1.Value ' Mette in pausa l'esecusione del file audio al.SourcePause(source) Else ' Fa proseguire l'esecusione del file audio al.SourcePlay(source) Endif End Public Sub Button2_Click() ' Arresta l'esecusione del file audio al.SourceStop(source) End
3a modalità
Private ags As Integer Public Sub Form_Open() Dim err As Boolean ' Inizializza la libreria "Alure": err = Alure.InitDevice(Null, Null) If err = False Then Error.Raise("Impossibile inizializzare la libreria 'Alure' !") End Public Sub Button1_Click() ' Avvia l'esecusione del file audio Dim err As Boolean Dim fileAudio As String = "/percorso/del/file/audio" Dim agb As Integer ' Genera le sorgenti sonore ed i buffer: ags = al.GenSources(1)[0] agb = al.GenBuffers(ags)[0] err = alure.BufferDataFromFile(fileAudio, agb) If err = False Then Error.Raise("Impossibile creare un buffer-data dal file audio !") al.Sourcei(ags, al.BUFFER, agb) ' Esegue il file audio: al.SourcePlay(ags) While True Wait 0.001 Wend End Public Sub ToggleButton1_Click() If ToggleButton1.Value ' Mette in pausa l'esecusione del file audio al.SourcePause(ags) Else ' Fa proseguire l'esecusione del file audio al.SourcePlay(ags) Endif End Public Sub Button2_Click() ' Arresta l'esecusione del file audio al.SourceStop(ags) End
Note
[1] La Classe Alure del componente gb.openal consente di gestire le funzioni di ALURE, che è una libreria di supporto di Openal.