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:
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