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

Da Gambas-it.org - Wikipedia.
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