|
|
(21 versioni intermedie di uno stesso utente non sono mostrate) |
Riga 1: |
Riga 1: |
− | Con la revisione 5753 di Gambas-3 è stato aggiunto il componente: ''gb.openal'' che utilizza le risorse dell'[http://it.wikipedia.org/wiki/Application_programming_interface API] di [http://connect.creativelabs.com/openal/default.aspx Openal].
| + | #REDIRECT [[La_gestione_dei_file_audio_mediante_il_componente_gb.openal]] |
− | | |
− | E' possibile eseguire un file audio mediante le risorse delle Classi ''Al'' ed ''Alure'' |[[#Note|1]]| del componente ''gb.openal''.
| |
− | | |
− | | |
− | | |
− | ==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''.
| |
− | <BR>E' possibile riprodurre file audio dei seguenti tipi:
| |
− | * WAV;
| |
− | * MP3;
| |
− | * OGG.
| |
− | | |
− | | |
− | ===1<SUP>a</sup> modalità===
| |
− | '''Private''' src As Integer
| |
− | '''Private''' ast As Alurestream
| |
− |
| |
− |
| |
− | '''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'esecuzione del file audio''</font>
| |
− |
| |
− | Dim fileAudio As String = "''/percorso/del/file/audio''"
| |
− | Dim src, lungh As Integer
| |
− |
| |
− |
| |
− | src = Al.GenSources(1)[0]
| |
− |
| |
− | <FONT color=gray>' ''Individua la lunghezza del file audio caricato da eseguire:''</font>
| |
− | lungh = Stat(fileAudio).Size
| |
− |
| |
− | ast = Alure.CreateStreamFromFile(fileAudio, lungh, 0)
| |
− |
| |
− | <FONT color=gray>' ''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.''</font>
| |
− | Alure.PlaySourceStream(src, ast, 3, 0)
| |
− |
| |
− | Wait 0.01
| |
− |
| |
− | '''End'''
| |
− |
| |
− |
| |
− | '''Public''' Sub Button2_Click() <FONT color=gray>' ''Arresta l'esecuzione del file audio''</font>
| |
− |
| |
− | Alure.DestroyStream(ast)
| |
− | Alure.StopSource(src)
| |
− |
| |
− | '''End'''
| |
− | | |
− | | |
− | ===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'esecuzione del file audio''</font>
| |
− |
| |
− | Dim buffer As Integer
| |
− |
| |
− |
| |
− | buffer = alure.CreateBufferFromFile("''/percorso/del/file/audio''")
| |
− |
| |
− | <FONT color=gray>' ''Crea una sorgente sonora:''</font>
| |
− | source = al.GenSources(1)[0]
| |
− |
| |
− | <FONT color=gray>' ''Viene utilizzata la variabile "buffer" per riempire la sorgente.''
| |
− | ' ''Il secondo argomento indica al buffer di fornire campioni sonori:''</font></font>
| |
− | al.Sourcei(source, al.BUFFER, buffer)
| |
− |
| |
− | <FONT color=gray>' ''Esegue il flusso di dati audio.''</font>
| |
− | al.SourcePlay(source)
| |
− |
| |
− | Wait 0.01
| |
− |
| |
− | '''End'''
| |
− |
| |
− |
| |
− | '''Public''' Sub ToggleButton1_Click()
| |
− |
| |
− | If ToggleButton1.Value
| |
− | <FONT color=gray>' ''Mette in pausa l'esecuzione del file audio''</font>
| |
− | al.SourcePause(source)
| |
− | Else
| |
− | <FONT color=gray>' ''Fa proseguire l'esecuzione del file audio''</font>
| |
− | al.SourcePlay(source)
| |
− | Endif
| |
− |
| |
− | '''End'''
| |
− |
| |
− |
| |
− | '''Public''' Sub Button2_Click() <FONT color=gray>' ''Arresta l'esecuzione del file audio''</font>
| |
− |
| |
− | al.SourceStop(source)
| |
− |
| |
− | '''End'''
| |
− | | |
− | | |
− | ===3<SUP>a</sup> modalità===
| |
− | '''Private''' ags As Integer
| |
− |
| |
− |
| |
− | '''Public''' Sub Button1_Click() <FONT color=gray>' ''Avvia l'esecuzione del file audio''</font>
| |
− |
| |
− | Dim err As Boolean
| |
− | Dim fileAudio As String = "''/percorso/del/file/audio''"
| |
− | Dim agb As Integer
| |
− |
| |
− |
| |
− | <FONT color=gray>' ''Inizializza la libreria "Alure":''</font>
| |
− | err = Alure.InitDevice(Null, Null)
| |
− | If err = False Then Error.Raise("Impossibile inizializzare la libreria 'Alure' !")
| |
− |
| |
− | <FONT color=gray>' ''Genera le sorgenti sonore ed i buffer:''</font>
| |
− | 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)
| |
− |
| |
− | <FONT color=gray>' ''Esegue il file audio:''</font>
| |
− | al.SourcePlay(ags)
| |
− |
| |
− | Wait 0.01
| |
− |
| |
− | '''End'''
| |
− |
| |
− |
| |
− | '''Public''' Sub ToggleButton1_Click()
| |
− |
| |
− | If ToggleButton1.Value
| |
− | <FONT color=gray>' ''Mette in pausa l'esecuzione del file audio''</font>
| |
− | al.SourcePause(ags)
| |
− | Else
| |
− | <FONT color=gray>' ''Fa proseguire l'esecuzione del file audio''</font>
| |
− | al.SourcePlay(ags)
| |
− | Endif
| |
− |
| |
− | '''End'''
| |
− |
| |
− |
| |
− | '''Public''' Sub Button2_Click() <FONT color=gray>' ''Arresta l'esecuzione del file audio''</font>
| |
− |
| |
− | al.SourceStop(ags)
| |
− |
| |
− | '''End'''
| |
− | | |
− | | |
− | | |
− | =Note=
| |
− | [1] La Classe ''Alure'' del componente ''gb.openal'' consente di gestire le funzioni di [http://kcat.strangesoft.net/alure.html ALURE], che è una libreria di supporto di ''Openal''.
| |