Differenze tra le versioni di "La gestione dei file audio mediante il componente gb.sdl2.audio"
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