Oppure

Loading
17/12/12 15:15
fosforo
Ciao

Scusate la domanda da neofita.
Sto cercando di costruire un Player con VB.net con VLC.
Dovrei replicare la barra di scorrimento.
Ho inserito una TrackBar e do i valori con AxVLCPlugin21.input.Position.

Il trackbar funziona ma non so come aggiornarlo.
Metto il mio povero script.

Private Sub TrackBar2_Scroll(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TrackBar2.Scroll

If AxVLCPlugin21.input.Length > 0 Then
TrackBar2.Minimum = 0
TrackBar2.Maximum = 100
TrackBar2.Value = (AxVLCPlugin21.input.Position * 100.0)
End If

End Sub


Grazie
aaa
17/12/12 20:36
GN
In che senso aggiornare? Il tuo codice fa questo: quando l'utente muove la barra (TrackBar2.Scroll), a questa viene assegnata la posizione del lettore. Semmai dovrebbe essere il contrario: quando l'utente muove la trackbar, il player dovrebbe spostarsi, quindi dovresti mettere questo
AxVLCPlugin21.input.Position = Trackbar2.Value0

al posto di questo
TrackBar2.Value = (AxVLCPlugin21.input.Position * 100.0) 

(però non conosco l'activex di vlc quindi non sono sicuro che funzioni, magari c'è da usare qualche metodo per settare la posizione).
Invece per fare avanzare la barra con il lettore dovresti trovare qualche evento ci quest'ultimo che venga generato al cambio di posizione; se non c'è, metti un timer che aggiorna la barra ogni secondo.
Ah, questo
TrackBar2.Minimum = 0
TrackBar2.Maximum = 100 

non c'è bisogno che lo fai a ogni movimento, basta che imposti le relative proprietà nella finestra di progettazione o al Form_Load.
aaa
17/12/12 22:13
LittleHacker
Penso che per "aggiornalo" intenda far incrementare il Value della Trackbar con il Value del video!
Dovresti cercare se c'è una funzione del plugin VLC, ad esempio:

Private sub VLC_VideoValue(etc, etc) etc
'Qui inserisci 
Trackbar.value = VLC.output.position
End Sub
aaa
18/12/12 11:41
fosforo
Ciao
Innanzitutto grazie per la risposta.

Il mio problema è il l'aggiornamento della posizione del Trackbar.
Si aggiorna solo se ci clikko sopra mentre dovrebbe essere aggiornato sempre.
I valori che gli passo sono corretti:

TrackBar2.Value = (AxVLCPlugin21.input.Position * 100.0)

Infatti quando ci clikko sopra prende la giusta posizione.
aaa
18/12/12 17:40
LittleHacker
Postato originariamente da fosforo:

Ciao
Innanzitutto grazie per la risposta.

Il mio problema è il l'aggiornamento della posizione del Trackbar.
Si aggiorna solo se ci clikko sopra mentre dovrebbe essere aggiornato sempre.
I valori che gli passo sono corretti:

TrackBar2.Value = (AxVLCPlugin21.input.Position * 100.0)

Infatti quando ci clikko sopra prende la giusta posizione.


Però quel codice non è esatto, facendo così tu dai al trackbar il valore del video quando clicchi sulla trackbak, invece è meglio se usi quello postato da GN!

Quello che usi te, puoi usarlo con un Timer per aggiornare il valore della trackbar con il valore del video!
aaa
18/12/12 17:55
GN
Postato originariamente da LittleHacker:
Puoi usarlo con un Timer per aggiornare il valore della trackbar con il valore del video!

Si intendevo quello, scusate se mi sono spiegato male; dicevo un timer oppure, se il controllo di vlc ha un evento generato al cambio di posizione, di usare quello.
aaa
20/12/12 10:35
fosforo
Ciao
Purtroppo non sono cosi avanti
Ho capito perfettamente le cose che mi avete detto e difatti ora controllo il filmato attraverso la TrackBar
Quello che non capisco ancora sono alcune logiche di come funziona VB.

Es:
Ho messo una ProgressBar e passo i dati attraverso il mio script:

Private Sub ProgressBar1_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ProgressBar1.Click
ProgressBar1.Value = AxVLCPlugin21.input.Position * 100
End Sub

Quello che non capisco è come tenere aggiornato il ProgressBar durante il PLAY.
In questo momento per vederlo avanzare devo cliccaerci sopra.
aaa
20/12/12 19:46
GN
Con il tuo codice, la riga
ProgressBar1.Value = AxVLCPlugin21.input.Position * 100 

viene eseguita quando l'utente clicca la barra, perchè il codice si trova appunto nell'evento ProgressBar1.Click.
Per fare in modo che si aggiorni sempre, quella riga va eseguita a intervalli regolari, ad esempio un secondo. Per fare ciò basta che metti un timer nel form e setti il suo interval (in millisecondi): ogni X millisecondi lui genererà un'evento tick (lo puoi trovare nella scheda eventi, facci doppio clic per generare il relativo codice), è li che devi mettere la riga di codice che aggiorna la progressbar.
aaa