Autore Topic: Come rilevare la fine di un sound.play?  (Letto 358 volte)

Offline piersante

  • Gamberetto
  • *
  • Post: 3
    • Mostra profilo
Come rilevare la fine di un sound.play?
« il: 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?


Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.724
  • Ne mors quidem nos iunget
    • Mostra profilo
Re:Come rilevare la fine di un sound.play?
« Risposta #1 il: 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
« Ultima modifica: 01 Aprile 2018, 16:44:43 da vuott »
« Chiunque, non ricorrendo lo stato di necessità, nel proprio progetto Gambas fa uso delle istruzioni Shell o Exec, è punito con la sanzione pecuniaria da euro 20,00 a euro 60,00. »