Gambas-it

Archivi (sola lettura) => Programmazione (Gambas 2) => Topic aperto da: - 01 Giugno 2009, 19:16:30

Titolo: Sapere quando termina un evento
Inserito da: - 01 Giugno 2009, 19:16:30
Secondo voi è possibile intercettare la fine di un evento  ?

Nel mio caso avrei bisogno di sapere quando mi finisce un music.play ....
Titolo: Re: Sapere quando termina un evento
Inserito da: giulio - 01 Giugno 2009, 20:06:47
Puoi usare music.pos e un timer. Dopo aver iniziato con music.play, abilita un timer con un ritardo di un secondo (o quello che ti pare meglio). Ogni secondo verifica music.pos. Quando music.pos ti restituisce 0, l'evento music play è finito. E' importante che il timer parta dopo
music.play, per non avere un falso 0 all'inizio. Ciao.
Titolo: Re: Sapere quando termina un evento
Inserito da: - 01 Giugno 2009, 21:32:29
Mhhhm il music.pos quando è al max mi ritorna il totale dei secondi ... non 0
Titolo: Re: Sapere quando termina un evento
Inserito da: giulio - 01 Giugno 2009, 22:13:59
Io ho provato con un file wav, perché gli mp3 non me li legge. A me alla fine dà 0.
Titolo: Re: Sapere quando termina un evento
Inserito da: giulio - 01 Giugno 2009, 22:26:20
Ho provato anche con un file ogg, e alla fine del pezzo music.pos mi ritorna 0. Ti faccio vedere il codice che ho usato:

Codice: [Seleziona]


PUBLIC SUB Form_Open()
 
  music.load("percorso_verso_il_file_audio")
  music.play
   
  Timer1.Delay = 1000
  Timer1.Start
 
END

PUBLIC SUB Timer1_Timer()
 
  PRINT music.pos
 
END



Gambas 2.13.1
Titolo: Re: Sapere quando termina un evento
Inserito da: - 01 Giugno 2009, 22:42:11
Ahhh ho capito cosa succede !!!!   :idea:

Praticamente lui ti ritorna alla fine del file il music.pos INIZIALE DI PLAY
Se tu parti da 0 ti ritorna 0.
Io, siccome l MP3 è lungo, ero partito quasi dalla fine (ho uno slider) e quindi mi ritornava un numero alto (che di 1° achito pensavo fosse music.pos MAX) ...
Titolo: Re: Sapere quando termina un evento
Inserito da: giulio - 01 Giugno 2009, 22:51:14
Ah ecco... spiegato l'inghippo. Allora mi sa che non è proprio un modo pulito :-)