salve ragazzi, in un mio progetto che ho risolverato in questi giorni utilizzavo questa funzione per avere la durata di un filmato:
Public Function LenghtFromFile(percorso As String) As Integer
'Dim Lunghezza As Integer
Dim secondi As Integer
Dim Player As New MediaPlayer
Dim Tentativi As Integer
If Exist(percorso) = False Then
Message.Warning("File:" & gb.CrLf & percorso & gb.crlf & "do not exist! Check if it was renamed or moved.")
Return 9999
Endif
Player.url = Media.URL(percorso)
Player.Audio.Volume = 0
'Try Player.Play
Try Player.Pause
If Error Then
Wait 2
Player.url = Media.URL(percorso)
Try Player.Pause
Endif
Do
Wait
Loop Until Player.Duration > 0
Player.Pause
secondi = Player.Duration
'secondi = Hour(Lunghezza) * 3600 + Minute(Lunghezza) * 60 + Second(lunghezza)
Player.close
Return secondi
End
dopo i vari aggiornamenti di gambas di questi ultimi giorni pero' il loop andava all'infinito perche' se non mandavo in play il filamto gb.media non riusciva a detectare la lunghezza dello stream.
Per risolvere ho dovuto cambiare Try Player.Pause con Try Player.Play ... ma ora gstreamer mi apre (giustamente) una finestra per il play e poi la chiude a termine della funzione.
Sapete se e' possibile renderizzare una pipeline gstreamer su device null per evitare che apra e chiuda finestre ogni volta che si deve analizzare un filmato?
Ho provato a mettere
ma senza successo .....