Eseguire un DVD video mediante le risorse del Componente gb.media

Da Gambas-it.org - Wikipedia.
Versione del 13 set 2024 alle 15:23 di Vuott (Discussione | contributi)

(diff) ← Versione meno recente | Versione attuale (diff) | Versione più recente → (diff)

E' possibile eseguire una traccia di un DVD video mediante il Componente gb.media di Gambas, utilizzando alcune sue risorse.

Va precisato che è opportuno specificare il corretto file-device del lettore DVD da assegnare alla proprietà .URL delle Classi appresso utilizzate del Componente gb.media.


Uso della sola Classe MediaPlayer

Mostriamo un semplice esempio, nel quale imposteremo come file-device del lettore DVD il percorso "/dev/cdrom".

Private bo As Boolean


Public Sub Main()
 
 Dim mp As MediaPlayer

 With mp = New MediaPlayer
   .URL = "dvd:///dev/cdrom"
   .Play
 End With
 
 Repeat
' Mostra in console la posizione, espressa in secondi, all'interno dei dati video processati:
   Write "\rDurata del video: " & CStr(Time(0, 0, 0, mp.Duration * 1000)) & "   -   Tempo trascorso: " & CStr(Time(0, 0, 0, mp.Position * 1000))
   Flush
   Wait 0.01
 Until (mp.Position >= mp.Duration) Or (bo = True)

 mp.Stop
 mp.Close
  
 Quit
  
End


Public Sub Application_Read()   ' Premendo il tasto "Invio" della tastiera, si arresta il programma

 bo = True
  
End


Uso della sola Classe MediaPipeline

L'utilizzo della sola Classe MediaPipeline del Componente gb.media prevede l'uso del plug-in "playbin".

Mostriamo un semplice esempio, nel quale imposteremo come file-device del lettore DVD il percorso "/dev/cdrom".

Public Sub Main()

 Dim pl As MediaPipeline
 
 pl = New MediaPipeline(Null, "playbin")
 pl["uri"] = "dvd:///dev/cdrom"
  
 pl.Play()
  
 Repeat
' Mostra in console la posizione, espressa in secondi, all'interno dei dati video processati:
   Write "\rDurata del video: " & CStr(Time(0, 0, 0, pl.Duration * 1000)) & "   -   Tempo trascorso: " & CStr(Time(0, 0, 0, pl.Position * 1000))
   Flush
   Wait 0.01
 Until (pl.Position >= pl.Duration) Or (bo = True)

 pl.Stop
 pl.Close
 
End


Uso della Classe MediaPipeline e della Classe MediaControl

L'esecuzione di una traccia può essere effettuata anche utilizzando le Classi MediaPipeline e MediaControl del Componente gb.media.

Mostriamo un semplice esempio, nel quale imposteremo come file-device del lettore DVD il percorso "/dev/cdrom".

Public Sub Main()

 Dim pl As MediaPipeline
 Dim src As MediaControl
  
 pl = New MediaPipeline
  
 src = New MediaControl(pl, "playbin")
 src["uri"] = "dvd:///dev/cdrom"
 
 pl.Play()
 
 Repeat
' Mostra in console la posizione, espressa in secondi, all'interno dei dati video processati:
   Write "\rDurata del video: " & CStr(Time(0, 0, 0, pl.Duration * 1000)) & "   -   Tempo trascorso: " & CStr(Time(0, 0, 0, pl.Position * 1000))
   Flush
   Wait 0.01
 Until (pl.Position >= pl.Duration) Or (bo = True)

 pl.Stop
 pl.Close
  
End


Uso delle Classi MediaPlayer e MediaControl e del plug-in jackaudiosink

L'uso delle Classi MediaPlayer e MediaControl e del plug-in jackaudiosink richiede che sia preliminarmente avviato il programma server Jack.

Mostriamo un esempio, nel quale imposteremo come file-device del lettore DVD il percorso "/dev/cdrom".

Public Sub Main()

 Dim mp As MediaPlayer
 Dim usc As MediaControl
     
 With mp = New MediaPlayer
   .URL = "dvd:///dev/cdrom"
 End With
  
 usc = New MediaControl(mp, "jackaudiosink")
 mp.Audio.Output = usc
 
 mp.Play()
  
 Repeat
' Mostra in console la posizione, espressa in secondi, all'interno dei dati video processati:
   Write "\rDurata del video: " & CStr(Time(0, 0, 0, mp.Duration * 1000)) & "   -   Tempo trascorso: " & CStr(Time(0, 0, 0, mp.Position * 1000))
   Flush
   Wait 0.01
 Until (mp.Position >= mp.Duration) Or (bo = True)
  
 mp.Stop
 mp.Close
    
End