Differenze tra le versioni di "La gestione dei file audio mediante il componente gb.sdl2.audio"

Da Gambas-it.org - Wikipedia.
Riga 1: Riga 1:
 
Le risorse della libreria ''SDL2'' per la gestione dell'audio è stata da poco implementata in Gambas attraverso il nuovo componente '''''gb.sdl2.audio'''''. Pertanto, tale componente per ora è funzionante in modo non del tutto completo.
 
Le risorse della libreria ''SDL2'' per la gestione dell'audio è stata da poco implementata in Gambas attraverso il nuovo componente '''''gb.sdl2.audio'''''. Pertanto, tale componente per ora è funzionante in modo non del tutto completo.
  
Il componente fornisce risorse mediante due Classi: ''Sound'' e ''Music''. La Classe più completa è quella ''Music''.
+
Il componente fornisce risorse mediante due Classi: ''Sound'' e ''Music''. La Classe attualmente più completa è quella ''Music''.
 +
 
 +
 
 +
==Gestione dei file audio mediante la Classe ''Sound''==
 +
La classe '''''Sound''''' consente di ascoltare <SPAN style="text-decoration:underline">contemporaneamente</span> due o più (fino a 32) file sonori (<SPAN style="text-decoration:underline">di tipo .wav</span>).
 +
 
 +
In questo caso, per far eseguire un file sonoro, è ''necessario'' caricarlo in memoria assegnando ad una specifica variabile di tipo "''Sound''" un singolo file sonoro.
 +
 
 +
Ogni file sarà fatto suonare in un canale, cosicché è possibile decidere mediante la classe "''Channels''" quanti canali saranno attivati per la riproduzione, e dunque quanti file, caricati in memoria nelle predette variabili, saranno eseguiti.
 +
<BR>Innanzitutto bisognerà stabilire il numero di canali utilizzabili impostando la proprietà:
 +
Channels.Count = ''numero canali utilizzabili'' (<=32)
 +
 
 +
La classe "''Channels''" ci consente, inoltre, di impostare il volume all'interno di una gamma tra 0 e 128.
 +
 
 +
 
 +
Nell'esempio che segue saranno eseguiti ''contemporaneamente'' due file WAV:
 +
'''Public''' Sub Main()
 +
 +
  Dim sn1, sn2 As Sound
 +
 +
<FONT Color=gray>' ''Si stabilisce il numero di canali da utilizzare:''</font>
 +
  Channels.Count = 2
 +
 +
<FONT Color=gray>' ''Si imposta a piacere il volume audio di ciascun canale:''</font>
 +
  Channels[0].Volume = 110
 +
  Channels[1].Volume = 90
 +
 +
<FONT Color=gray>' ''Si carica per ciascun canale un file WAV:''</font>
 +
  sn1 = Sound.Load("''/percorso/del/primo/file.wav''")
 +
  sn2 = Sound.Load("''/percorso/del/secondo/file.wav''")
 +
 +
<FONT Color=gray>' ''Si eseguono contemporaneamentei file WAV dei due canali:''</font>
 +
  Channels[0].Play(sn1)
 +
  Channels[1].Play(sn2)
 +
 +
<FONT Color=gray>' ''E' necessario attivare un ciclo:''</font>
 +
  While True
 +
   
 +
  Wend
 +
 
 +
'''End'''
 +
 
  
  
Riga 22: Riga 63:
 
   
 
   
 
  '''End'''
 
  '''End'''
 
  
 
===Modificare il volume===
 
===Modificare il volume===

Versione delle 11:39, 31 dic 2014

Le risorse della libreria SDL2 per la gestione dell'audio è stata da poco implementata in Gambas attraverso il nuovo componente gb.sdl2.audio. Pertanto, tale componente per ora è funzionante in modo non del tutto completo.

Il componente fornisce risorse mediante due Classi: Sound e Music. La Classe attualmente più completa è quella Music.


Gestione dei file audio mediante la Classe Sound

La classe Sound consente di ascoltare contemporaneamente due o più (fino a 32) file sonori (di tipo .wav).

In questo caso, per far eseguire un file sonoro, è necessario caricarlo in memoria assegnando ad una specifica variabile di tipo "Sound" un singolo file sonoro.

Ogni file sarà fatto suonare in un canale, cosicché è possibile decidere mediante la classe "Channels" quanti canali saranno attivati per la riproduzione, e dunque quanti file, caricati in memoria nelle predette variabili, saranno eseguiti.
Innanzitutto bisognerà stabilire il numero di canali utilizzabili impostando la proprietà:

Channels.Count = numero canali utilizzabili (<=32)

La classe "Channels" ci consente, inoltre, di impostare il volume all'interno di una gamma tra 0 e 128.


Nell'esempio che segue saranno eseguiti contemporaneamente due file WAV:

Public Sub Main()

 Dim sn1, sn2 As Sound

' Si stabilisce il numero di canali da utilizzare:
  Channels.Count = 2

' Si imposta a piacere il volume audio di ciascun canale:
  Channels[0].Volume = 110
  Channels[1].Volume = 90

' Si carica per ciascun canale un file WAV:
  sn1 = Sound.Load("/percorso/del/primo/file.wav")
  sn2 = Sound.Load("/percorso/del/secondo/file.wav")

' Si eseguono contemporaneamentei file WAV dei due canali:
  Channels[0].Play(sn1)
  Channels[1].Play(sn2)

' E' necessario attivare un ciclo:
 While True
   
 Wend
 
End


Gestione dei file audio mediante la Classe Music

La Classe Music consente di eseguire i seguenti tipi di file audio: WAV, MP3 e OGG. Inoltre, consente di eseguire un solo file audio per volta.


Mostriamo di seguito un semplice esempio per eseguire un file audio con un'applicazione a riga di comando:

Public Sub Main()

 Music.Load("/percorso/del/file/audio")

 Music.Play

' Per l'esecuzione del file audio in un'applicazione "a riga di comando" il ciclo è indispensabile:
 While Music.State = Music.Playing
' Mostra anche il tempo trascorso:
   Print CStr(Date(0, 0, 0, 0, 0, 0, Music.Pos * 1000))
 Wend

End

Modificare il volume

La Classe Music fornisce la proprietà .Volume per modificare appunto il volume audio dell'esecuzione. L'ambito dei valori possibili va da 0 a 128.

Esempio:

Music.Volume = 110