Differenze tra le versioni di "La gestione dei file audio mediante il componente gb.sdl2.audio"
Riga 16: | Riga 16: | ||
− | Nell'esempio che segue saranno eseguiti ''contemporaneamente'' due file WAV: | + | Nell'esempio che segue saranno eseguiti ''contemporaneamente'' due file WAV in un'applicazione ''a riga di comando'': |
'''Public''' Sub Main() | '''Public''' Sub Main() | ||
Riga 41: | Riga 41: | ||
Wend | Wend | ||
+ | '''End''' | ||
+ | |||
+ | |||
+ | ==Gestione di un solo file audio mediante le Classi ''Sound'' e ''Channel''== | ||
+ | Se si deve far eseguire <SPAN Style="text-decoration:underline">un solo</span> file audio WAV, si può utilizzare la Classe ''Channel'' unitamente alla già vista Classe ''Sound''. | ||
+ | |||
+ | Mostriamo un semplice esempio in applicazione grafica, nel quale si avrà anche la possibilità di arrestare, mettere in pausa l'esecuzione del file audio WAV e variare il volume dell'audio: | ||
+ | Private cn As New Channel | ||
+ | Private sn As Sound | ||
+ | |||
+ | |||
+ | '''Public''' Sub Form_Open() | ||
+ | |||
+ | With Slider1 | ||
+ | .Max = 128 | ||
+ | .Value = 100 | ||
+ | End With | ||
+ | |||
+ | ValueBox1.Text = CStr(Slider1.Value) | ||
+ | |||
+ | '''End''' | ||
+ | |||
+ | |||
+ | '''Public''' Sub Button1_Click() | ||
+ | |||
+ | sn = Sound.Load("''/percorso/del/file.wav''") | ||
+ | |||
+ | cn.Play(sn) | ||
+ | |||
+ | '''End''' | ||
+ | |||
+ | |||
+ | '''Public''' Sub ToggleButton1_Click() | ||
+ | |||
+ | Select Case ToggleButton1.Value | ||
+ | Case True | ||
+ | cn.Pause | ||
+ | Case False | ||
+ | cn.Play(sn) | ||
+ | End Select | ||
+ | |||
+ | '''End''' | ||
+ | |||
+ | |||
+ | '''Public''' Sub Button2_Click() | ||
+ | |||
+ | cn.Stop | ||
+ | |||
+ | '''End''' | ||
+ | |||
+ | |||
+ | '''Public''' Sub Slider1_Change() | ||
+ | |||
+ | cn.Volume = Slider1.Value | ||
+ | ValueBox1.Text = CStr(Slider1.Value) | ||
+ | |||
'''End''' | '''End''' | ||
Riga 65: | Riga 121: | ||
===Modificare il volume=== | ===Modificare il volume=== | ||
− | + | Anche 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: | Esempio: | ||
Music.Volume = 110 | Music.Volume = 110 |
Versione delle 09:29, 2 gen 2015
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.
Indice
Gestione dei file audio mediante le Classi Sound e Channels
La classe Sound consente di ascoltare contemporaneamente due o più (fino a 32) file sonori (solo 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 in un'applicazione a riga di comando:
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 di un solo file audio mediante le Classi Sound e Channel
Se si deve far eseguire un solo file audio WAV, si può utilizzare la Classe Channel unitamente alla già vista Classe Sound.
Mostriamo un semplice esempio in applicazione grafica, nel quale si avrà anche la possibilità di arrestare, mettere in pausa l'esecuzione del file audio WAV e variare il volume dell'audio:
Private cn As New Channel Private sn As Sound Public Sub Form_Open() With Slider1 .Max = 128 .Value = 100 End With ValueBox1.Text = CStr(Slider1.Value) End Public Sub Button1_Click() sn = Sound.Load("/percorso/del/file.wav") cn.Play(sn) End Public Sub ToggleButton1_Click() Select Case ToggleButton1.Value Case True cn.Pause Case False cn.Play(sn) End Select End Public Sub Button2_Click() cn.Stop End Public Sub Slider1_Change() cn.Volume = Slider1.Value ValueBox1.Text = CStr(Slider1.Value) 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
Anche 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