Differenze tra le versioni di "La gestione dei file audio mediante il componente gb.sdl2.audio"
Riga 4: | Riga 4: | ||
− | ==Gestione dei file audio mediante le Classi ''Sound'' e ''Channels'' | + | ==Gestione dei file audio mediante le Classi ''Sound'' e ''Channels''== |
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">solo di tipo .wav</span>). | 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">solo di tipo .wav</span>). | ||
Versione delle 09:01, 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.
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:
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