Gambas-it

Gambas3 => Programmazione => Topic aperto da: piersante - 31 Marzo 2018, 22:02:54

Titolo: Come rilevare la fine di un sound.play?
Inserito da: piersante - 31 Marzo 2018, 22:02:54
Vorrei concatenare diversi messaggi vocali ma non ho trovato un metodo per identificare quando un messaggio avviato con sound.play finisce.
Ho visto l'oggetto channel avrebbe un evento Finish()  ma come si dovrebbe utilizzare?

Titolo: Re:Come rilevare la fine di un sound.play?
Inserito da: vuott - 01 Aprile 2018, 03:02:07
Per gli altri che leggono, specifichiamo che si sta trattando delle Classi " Sound " e " Channel " del Componente gb.sdl2.audio.

.... non ho trovato un metodo per identificare quando un messaggio avviato con sound.play finisce.
Ho visto l'oggetto channel avrebbe un evento Finish()  ma come si dovrebbe utilizzare?
L'evento " _Finish( ) " della Classe " Channel " viene sollevato ovviamente quando i dati del file audio, da processare, finiscono. Pertanto all'interno della sub-routine dell'Evento in questione possiamo porre un qualsiasi codice che diventerà operativo al sollevarsi dell'Evento medesimo.

Facciamo un esempio semplicissimo:

Codice: [Seleziona]
Private cn As New Channel As "Canale"
 

Public Sub Button1_Click()

 Dim sn As Sound

  sn = Sound.Load("/percorso/del/file.wav")

  cn.Play(sn)

End


Public Sub Canale_Finish()
 
  Print "Esecuzione terminata"
 
End


Colgo l'occasione per segnalare le pagine della nostra Wiki attinenti all'utilizzo delle risorse del Componente nativo di Gambas " gb.sdl2.audio ":
http://www.gambas-it.org/wiki/index.php?title=La_gestione_dei_file_audio_mediante_il_componente_gb.sdl2.audio
http://www.gambas-it.org/wiki/index.php?title=Eseguire_un_file_MIDI_mediante_il_componente_gb.sdl2.audio