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
  
 Do
   Sleep 0.01
 Loop 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
    Do
      Sleep 0.01
    Loop Until mp.Duration > 0
    
    Print "Durata del video: " & CStr(Date(0, 0, 0, 0, 0, 0, .Duration * 1000))
    .Stop
    .Close
  End With
  
End