Autore Topic: Timer  (Letto 6191 volte)

Offline fsurfing

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.482
    • Mostra profilo
Re: Timer
« Risposta #15 il: 02 Dicembre 2008, 22:36:58 »
cancella tutto dalla funzione

PUBLIC SUB Slider1_Change()   'Varia la posizione dello slider in base alla posizione della musica   Music.Pos = Slider1.Value END

la funzione

Slider1.Value = Music.Pos

gia posiziona il cursore sullo slider

il problema è dare un valore a music.pos

ti consiglio di creare una funzione che in base alla durata della canzone calcola la percentuale di brano gia ascoltata , di conseguenza se lo slidera avra come val min e val max 0 e 100 music.pos sara uguale al valore persentuale

ciao ciao

Offline Lux

  • Maestro Gambero
  • ****
  • Post: 416
    • Mostra profilo
Re: Timer
« Risposta #16 il: 03 Dicembre 2008, 21:33:41 »
mmmm, saresti così gentile da spiegarmi come ho fatto il loop?
Comunque per ora ho risolto eliminando la riga:
Codice: [Seleziona]
PUBLIC SUB Slider1_Change()   'Varia la posizione dello slider in base alla posizione della musica   
'Music.Pos = Slider1.Value END

e cambiando invece:
Codice: [Seleziona]
PUBLIC SUB Timer2_Timer()   
'Aggiorna la posizione dello slider1  
Slider1.Value = Music.Pos    
Label6.Caption = Music.Pos * 60 END

Ovviamente ci sono degli errori, non far caso a quel *60 che non serve a nulla, provo semplicemente a far comparire il tempo trascorso in un label.
Ho anche un'altro problemino che però non c'entra nulla col timer, ma descrivo quì dato che il programma è sempre lo stesso, ovviamente se ritenete che debba creare un topic apposito, lo faccio.
Riguarda il pulsante di stop, vorrei che prima di fermare il brano musicale, mi vada a diminuire lentamente il volume e poi stoppare tutto. Sto facendo alcuni esperimenti:
Codice: [Seleziona]
PUBLIC SUB ToolButton7_Click()   
'Stoppa la musica  
 DIM a AS Integer  
 DIM b AS Float  
 DIM c AS Float  
 b = 0.1  
 FOR a = 0 TO 10      
 Music.Volume = c      
 c = 1.0 - b  
 b = b + b    
 WAIT 1.5  
 NEXT    
 Music.Stop  
 Timer2.Enabled = FALSE  
 Slider1.Value = 0
 END

Il codice in linea di massima funziona ma non so perchè quando premo il tasto stop la musica si stoppa per un attimo, poi riparte e abbassa il volume fino poi a stopparsi completamente.
Ciao e grazie mille a tutti!!!!!!!!!!
PS: Perchè non lo facciamo noi un bel manuale per gambas2?????  :-D

Offline Lux

  • Maestro Gambero
  • ****
  • Post: 416
    • Mostra profilo
Re: Timer
« Risposta #17 il: 03 Dicembre 2008, 21:37:13 »
Dimenticavo, lo stesso problema che mi faceva il timer per l'ascolto della musica lo fa anche quando tento di visualizzare un video preso da una webcam in un picturebox...
ecco il codice che ho inserito:
Codice: [Seleziona]
PUBLIC SUB Timer1_Timer()   
'Refresh dell'immagine nel PictureBox1  
TRY PictureBox1.Picture = webcam.Picture  
PictureBox1.Refresh
END
In pratica il programma mi si muove a scatti e il video lo vedo con delle fastidiose bande nere che compaiono e scompaiono.
il Dalay del timer è però settato a 40...per avere 25 fps.
Ciao.

Offline fsurfing

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.482
    • Mostra profilo
Re: Timer
« Risposta #18 il: 03 Dicembre 2008, 21:44:00 »
spiegarlo a a parole non è semplice comunque la funzione di

Slider1_Change()

creava un loop all' evento timer anche se in teori a non avredbbe dovuto


per il secondo problema mi pare che ci sia una funzione apposita

Offline Lux

  • Maestro Gambero
  • ****
  • Post: 416
    • Mostra profilo
Re: Timer
« Risposta #19 il: 03 Dicembre 2008, 22:13:11 »
ok, Grazie mille. Per lo stoppare una canzone diminuendo lentamente il volume ci sono riuscito, ma resta quello strano effetto, ovvero appena premo il tasto stop il suono si interrompe per poi riprendersi e andare in dissolvenza proprio come voglio.
Per il video invece sto ancora cercando!
Ciao. :-D

Offline fsurfing

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.482
    • Mostra profilo
Re: Timer
« Risposta #20 il: 03 Dicembre 2008, 22:35:09 »
prova cosi


Codice: [Seleziona]

PUBLIC SUB ToolButton7_Click()  
'Stoppa la musica  
 DIM a AS Integer  
 DIM b AS Float  
 DIM c AS Float  
 b = 0.1  
c=1
 FOR a = 0 TO 10      
 Music.Volume = c      
 c = 1.0 - b  
 b = b + b    
 WAIT 1.5  
 NEXT    
 Music.Stop  
 Timer2.Enabled = FALSE  
 Slider1.Value = 0
 END

Offline fsurfing

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.482
    • Mostra profilo
Re: Timer
« Risposta #21 il: 03 Dicembre 2008, 22:36:49 »
per il video forse è meglio se posti tutto il programma

quello stralcio di codice non aiuta


potresti provare ad eliminare picturbox.refresh mi sembra tdi troppo
del resto l'immagine è gia cambata con picturbox1.picture=...


:)

Offline Lux

  • Maestro Gambero
  • ****
  • Post: 416
    • Mostra profilo
Re: Timer
« Risposta #22 il: 04 Dicembre 2008, 18:11:00 »
Grazie mille!!!! Per il video ho eliminato il codice picture.box.refresh ed ho eliminato quelle fastidiose bande nere che si creavano. il problema era semplice ma non ci avevo pensato....il refresh del picturebox comportava un' aggiornamento del compinente in questione che ha un background nero...ecco le bande...risolto!
Ora però mi resta il problema che col video attivato mi rallenta l'applicazione...
Postare tutto il programma, si può? è grandicello.....lo posso allegare? o è disturbo?
Poi ho anche il problema del tasto stop per l'audio. Io seleziono un file audio e lo faccio partire, ma quando clicco sul tasto stop questo mi si ferma poi riparte e dissolve l'audio fino a fermarsi....
PUBLIC SUB ToolButton7_Click()
  'Stoppa la musica
  DIM a AS Integer
  DIM b AS Float
  DIM c AS Float
  b = 0.1
  FOR a = 0 TO 10
      Music.Volume = c
      c = 1.0 - b
      b = b + 0.1
      WAIT 0.5
  NEXT
  Timer2.Enabled = FALSE
  Slider1.Value = 0
  Music.Stop
  Label6.Caption = "Stop"
  RETURN
END
Questo è il codice e in teoria deve stoppare la musica alla fine dopo aver portato in dissolvenza la musica...Tipo come fa anche amarok.
ciao.
Fatemi sapere se posso allegare il programma....

Offline fsurfing

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.482
    • Mostra profilo
Re: Timer
« Risposta #23 il: 04 Dicembre 2008, 21:18:55 »
la soluzione al problema dell' audio quando premi stop te lo scritta nella risposta di prima  :-o

basta che prima di iniziare il loop for-next

inizializzi c con c=1 altrimenti si autoinizializza a zero (picco con volume nullo)

per poi essere portata a 1 a inizio loop e poi si dissolve.


puoi postare tutto il programma basta che fai un pacchetto .tar o .bz2

Offline Lux

  • Maestro Gambero
  • ****
  • Post: 416
    • Mostra profilo
Re: Timer
« Risposta #24 il: 04 Dicembre 2008, 21:43:52 »
Citazione
la soluzione al problema dell' audio quando premi stop te lo scritta nella risposta di prima
:lol:
Mi credi che non mi ero accorto della risposta?? Mi sto rincretinendo!!!!!!
Ora provo subito, ti faccio sapere!!!
Grazie mille!!!!

Offline Lux

  • Maestro Gambero
  • ****
  • Post: 416
    • Mostra profilo
Re: Timer
« Risposta #25 il: 04 Dicembre 2008, 21:45:48 »
Ok, ho risolto....
Ora creo il tar e invio tutto, in questo modo mi date dei consigli!!!

Offline Lux

  • Maestro Gambero
  • ****
  • Post: 416
    • Mostra profilo
Re: Timer
« Risposta #26 il: 04 Dicembre 2008, 21:48:25 »
Ecco il file.
Ciao.
PS: Troverete un casino di errori, non fateci caso sto imparando adesso!!!!!

Offline fsurfing

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.482
    • Mostra profilo
Re: Timer
« Risposta #27 il: 04 Dicembre 2008, 22:16:12 »
bravo carino il prog. domani gli do un occhiata + approfondita se ho tempo.. ora vado a giocare a
spring

ciao ciao

Offline fsurfing

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.482
    • Mostra profilo
Re: Timer
« Risposta #28 il: 05 Dicembre 2008, 19:14:21 »
non riesco a caricare nessun video


non mi ricordavo male ...
gambas offre gia la possibilita di stoppare la musica diminuendo il volume progressivamente

basta che dai music.stop(0.5)  
0.5 è il valore float che determina la durata del fad out

Offline Lux

  • Maestro Gambero
  • ****
  • Post: 416
    • Mostra profilo
Re: Timer
« Risposta #29 il: 05 Dicembre 2008, 21:24:34 »
Citazione
non riesco a caricare nessun video

Per ora non carica video....il video lo puoi vedere solo dalla webcam...
Grazie per l'info sullo stop dell'audio.
Ora aggiusto.