Conoscere la durata di un file video mediante il Componente gb.media

Da Gambas-it.org - Wikipedia.

Per conoscere la durata di un file video, il Componente gb.media fornisce la proprietà .Duration della Classe MediaPlayer. In particolare questa proprietà restituisce un valore di tipo Float che rappresenta la durata del video espresso in secondi.

Poiché tale proprietà ritorna più precisamente la durata dei dati processati, essa potrà essere utilizzabile solo successivamente all'attivazione della funzione .Play( ) .


Mostriamo un paio di esempi essenziali.

1° Esempio

Questo esempio utilizza la sola Classe MediaPlayer:

Public Sub Main()
 
 Dim mp As MediaPlayer
 
 With mp = New MediaPlayer
   .URL = Media.URL("/percorso/del/file/video")
   .Play
   .Video.Enabled = False
 End With
  
 Repeat
   Sleep 0.01
 Until mp.Duration > 0
  
 Print "Durata del video: " & CStr(Date(0, 0, 0, 0, 0, 0, mp.Duration * 1000))
  
 mp.Stop
 mp.Close
  
End


2° esempio

Questo esempio utilizza le Classi MediaPlayer e MediaControl:

 Public Sub Main()
 
 Dim mp As New MediaPlayer
 Dim uscitaVideo As MediaControl
 
' Utilizza il plug-in "fakesink" per impedire che sia mostrata una finestra con il video:
 uscitaVideo = New MediaControl(mp, "fakesink")
  
 With mp = New MediaPlayer
   
' Imposta gli effetti del plug-in "fakesink" come uscita video:
   .Video.Output = uscitaVideo  
   .URL = Media.URL  ("/percorso/del/file/video")
   .Play
   .Video.Enabled = False
   Repeat   
     Sleep 0.01
   Until mp.Duration > 0
    
   Print "Durata del video: " & CStr(Date(0, 0, 0, 0, 0, 0, .Duration * 1000))
   .Stop
   .Close
 End With
  
End