mi trovo difronte al solito problema che ti fa perdere una giornata e poi alla fine sarà una cavolata!!
mi sono accorto che nel mio player c'era un problema e cioè che quando avvio il programma ed è già caricata una playlist, o ne carico una, quando premo play invece di partire la riproduzione del primo elemento mi si apriva la finestra di dialogo per importare un file!
bene a questo ho già posto rimedio solo che quando premo play invece di riprodurre la prima canzone nella playlist mi riproduce la seconda!!
tramite delle print ho provato a guardare il valore di listbox1.index e inizialmente è a 0 ma poi va direttamente a 1 e le funzioni che vengono richiamate non incrementano l'indice mai!!
a questo punto qualcuno è in grado di darmi l'ispirazione? :-D
la funzione incrimata è questa
PUBLIC SUB Play_Click()
'se STOPS = TRUE il pulsante play lo uso per importare un file
'se la playlist è vuota importo comunque una canzone altrimenti quando premo play faccio partire la prima canzone della playlist
IF ListBox1.List.Count = 0 THEN
Menu1_Click
'può iniziare la riproduzione e il timer può partire
ELSE
timMusic.Delay = 1000
timMusic.Start
PRINT "prima if: " & ListBox1.Index
IF ListBox1.Index = -1 THEN
ListBox1.Index = 0
ENDIF
PRINT "dopo if: " & ListBox1.Index
'salvo l'indice della canzone attuale per evitare che venga modificato
index = ListBox1.Index
PRINT "index: " & index
function.calculate_length(ListBox1.Text)
PRINT "prima music.play: " & ListBox1.Index
Music.Play
ENDIF
END
e la funzione calculate_length è la seguente
PUBLIC SUB calculate_length(audio AS String)
DIM length, sini AS String
DIM sx AS Integer
'calcolo la durata della canzone e setto lo slider
SHELL "mplayer -ao null -ss 24:00:00 -really-quiet -identify " &
Quote.Shell(audio) & " 2>&1 | grep ID_LENGTH | cut -f2 -d=" WAIT TO length
sini = Left(length, InStr(length, ".") - 1)
sx = Val(sini)
sx = sx + 1
FMain.sldPos.MaxValue = sx
END
chiedo scusa se non vi ho postato direttamente i sorgenti ma quando provo a farlo mi compare un messaggio che mi avverte che è stato rilevato un tentativo di attacco... suppongo sia un bug del vostro CMS