Differenze tra le versioni di "Conoscere la durata di un file video mediante il Componente gb.media"
Da Gambas-it.org - Wikipedia.
Riga 1: | Riga 1: | ||
− | 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. | + | Per conoscere la durata di un file video, il Componente ''gb.media'' fornisce la proprietà .''Duration'' della Classe "''MediaPlayer''" e della Classe "''MediaPipeline''". 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( )'' . | Poiché tale proprietà ritorna più precisamente la durata dei dati processati, essa potrà essere utilizzabile solo successivamente all'attivazione della funzione ''.Play( )'' . | ||
Riga 6: | Riga 6: | ||
==Uso della Classe "MediaPlayer"== | ==Uso della Classe "MediaPlayer"== | ||
− | + | Questa modalità utilizza la sola Classe ''MediaPlayer'': | |
'''Public''' Sub Main() | '''Public''' Sub Main() | ||
Riga 61: | Riga 61: | ||
Questa modalità utilizza le Classi ''MediaPipeline'' e ''MediaControl'': | Questa modalità utilizza le Classi ''MediaPipeline'' e ''MediaControl'': | ||
'''Public''' Sub Main() | '''Public''' Sub Main() | ||
+ | |||
Dim pl As New MediaPipeline | Dim pl As New MediaPipeline | ||
Dim src, bin, vid, vsk As MediaControl | Dim src, bin, vid, vsk As MediaControl |
Versione delle 08:20, 18 ago 2020
Per conoscere la durata di un file video, il Componente gb.media fornisce la proprietà .Duration della Classe "MediaPlayer" e della Classe "MediaPipeline". 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 alcune modalità.
Uso della Classe "MediaPlayer"
Questa modalità 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
Uso delle Classi "MediaPlayer" e "MediaControl"
Questa modalità 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 .Duration > 0 Print "Durata del video: " & CStr(Date(0, 0, 0, 0, 0, 0, .Duration * 1000)) .Stop .Close End With End
Uso delle Classi "MediaPipeline" e "MediaControl"
Questa modalità utilizza le Classi MediaPipeline e MediaControl:
Public Sub Main() Dim pl As New MediaPipeline Dim src, bin, vid, vsk As MediaControl Dim filevideo As String filevideo = "/percorso/del/file/video" pl = New MediaPipeline src = New MediaControl(pl, "filesrc") src["location"] = filevideo bin = New MediaControl(pl, "decodebin") vid = New MediaControl(pl, "videoconvert") vsk = New MediaControl(pl, "autovideosink") src.LinkTo(bin) bin.LinkLaterTo(vid) vid.LinkTo(vsk) pl.Play Repeat Wait 0.01 Until pl.Duration > 0 Print "File video: "; filevideo Print "\nDurata: \e[31m" & CStr(Date(0, 0, 0, 0, 0, 0, pl.Duration * 1000)) pl.Stop pl.Close End