Differenze tra le versioni di "La gestione mediante il componente gb.openal"

Da Gambas-it.org - Wikipedia.
Riga 7: Riga 7:
  
 
==Eseguire un file audio con le risorse della Classe ''Al'' e della Classe ''Alure''==
 
==Eseguire un file audio con le risorse della Classe ''Al'' e della Classe ''Alure''==
Mostriamo un semplice codice per eseguire un file audio mediante le risorse della Classe ''Al'' e della Classe ''Alure'' del componente ''gb.openal''.
+
Vi sono almeno due 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:
 
<BR>E' possibile riprodurre file audio dei seguenti tipi:
 
* WAV;
 
* WAV;
 
* MP3;
 
* MP3;
 
* OGG.
 
* OGG.
 +
 +
 +
===1<SUP>a</sup> modalità===
 
  '''Public''' Sub Main()
 
  '''Public''' Sub Main()
 
   
 
   
Riga 29: Riga 32:
 
     ast = Alure.CreateStreamFromFile(percorsoFile, lungh, 0)
 
     ast = Alure.CreateStreamFromFile(percorsoFile, lungh, 0)
 
   
 
   
  <FONT color=gray>' ''Esegue il flusso di dati Midi.''
+
  <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".''
 
  ' ''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.''
 
  ' ''Ogni buffer verrà riempito con la lunghezza del "chunk" specificato quando il flusso è stato creato.''
Riga 35: Riga 38:
 
     Alure.PlaySourceStream(src, ast, 3, 0)
 
     Alure.PlaySourceStream(src, ast, 3, 0)
 
   
 
   
 +
<FONT color=gray>' ''Attende che l'esecuzione sia terminata:''</font>
 
     While isdone = 0
 
     While isdone = 0
 
       Alure.Update()
 
       Alure.Update()
Riga 41: Riga 45:
 
  '''End'''
 
  '''End'''
  
 +
 +
===2<SUP>a</sup> modalità===
 +
'''Private''' Const AL_BUFFER As Short = 4105    <FONT color=gray>' ''Indica  al buffer di fornire campioni sonori''</font>
 +
 +
 +
'''Public''' Sub Main()
 +
 +
  Dim buffer, source As Integer
 +
 +
 +
<FONT color=gray>' ''Inizializza la libreria "Alure":''</font>
 +
  alure.InitDevice(Null, Null)
 +
 
 +
  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:''</font>
 +
  al.Sourcei(source, AL_BUFFER, buffer)
 +
 
 +
<FONT color=gray>' ''Esegue il flusso di dati audio.''</font>
 +
  al.SourcePlay(source)
 +
 +
<FONT color=gray>' ''Attende che l'esecuzione sia terminata:''</font>
 +
  While state = 0
 +
    Alure.Update()
 +
  Wend
 +
 +
'''End'''
 +
  
  

Versione delle 17:18, 22 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|


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à

Private Const AL_BUFFER As Short = 4105     ' Indica  al buffer di fornire campioni sonori


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:
  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.


Pagina in costruzione !