Differenze tra le versioni di "Eseguire un DVD video mediante le risorse del Componente gb.media"

Da Gambas-it.org - Wikipedia.
(Creata pagina con "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...")
 
 
(4 versioni intermedie di uno stesso utente non sono mostrate)
Riga 11: Riga 11:
 
   
 
   
 
   
 
   
  '''Public''' Sub Main()
+
  Public Sub Main()
 
    
 
    
 
   Dim mp As MediaPlayer
 
   Dim mp As MediaPlayer
 +
 +
  With mp = New MediaPlayer
 +
    .URL = "<FONT Color=#B22222>dvd:///dev/cdrom</font>"
 +
    .Play
 +
  End With
 
    
 
    
  With mp = New MediaPlayer
+
  Repeat
    .URL = "<FONT Color=#B22222>dvd:///dev/cdrom</font>"
 
    .Play
 
  End With
 
 
 
  Do
 
 
  <FONT Color=gray>' ''Mostra in console la posizione, espressa in secondi, all'interno dei dati video processati:''</font>
 
  <FONT Color=gray>' ''Mostra in console la posizione, espressa in secondi, all'interno dei dati video processati:''</font>
    Write #File.Out, "\rDurata del brano: " & CStr(Date(0, 0, 0, 0, 0, 0, mp.Duration * 1000)) & "  -  Tempo trascorso: " & CStr(Date(0, 0, 0, 0, 0, 0, mp.Position * 1000))
+
    Write "\rDurata del video: " & CStr(Time(0, 0, 0, mp.Duration * 1000)) & "  -  Tempo trascorso: " & CStr(Time(0, 0, 0, mp.Position * 1000))
    Wait 0.01
+
    Flush
  Loop Until (mp.Position >= mp.Duration) Or (bo = True)
+
    Wait 0.01
    
+
  Until (mp.Position >= mp.Duration) Or (bo = True)
  mp.Stop
+
 +
   mp.Stop
 +
  mp.Close
 
    
 
    
  Quit
+
  Quit
 
    
 
    
  '''End'''
+
  End
 
   
 
   
 
   
 
   
  '''Public''' Sub Application_Read()  ' Premendo il tasto "Invio" della tastiera, si arresta il programma
+
  Public Sub Application_Read()  ' Premendo il tasto "Invio" della tastiera, si arresta il programma
 +
 +
  bo = True
 
    
 
    
  bo = True
+
  End
 
 
  '''End'''
 
  
  
Riga 43: Riga 45:
 
L'utilizzo della sola Classe ''MediaPipeline'' del Componente ''gb.media'' prevede l'uso del plug-in "''playbin''".
 
L'utilizzo della sola Classe ''MediaPipeline'' del Componente ''gb.media'' prevede l'uso del plug-in "''playbin''".
  
Mostriamo un semplice esempio, nel quale imposteremo l'esecuzione della traccia num. 10 del CD audio:
+
Mostriamo un semplice esempio, nel quale imposteremo come file-device del lettore DVD il percorso "''/dev/cdrom''".
  '''Public''' Sub Main()
+
  Public Sub Main()
 
+
 
   Dim pl As MediaPipeline
 
   Dim pl As MediaPipeline
 
    
 
    
  pl = New MediaPipeline(Null, "playbin")
+
  pl = New MediaPipeline(Null, "playbin")
  pl["uri"] = "<FONT Color=#B22222>dvd:///dev/cdrom</font>"
+
  pl["uri"] = "<FONT Color=#B22222>dvd:///dev/cdrom</font>"
 
    
 
    
  pl.Play()
+
  pl.Play()
 
    
 
    
  Do
+
  Repeat
  <FONT Color=gray>' ''Mostra in console la posizione, espressa in secondi, all'interno dei dati processati:''</font>
+
  <FONT Color=gray>' ''Mostra in console la posizione, espressa in secondi, all'interno dei dati video processati:''</font>
    Write #File.Out, "\rDurata del brano: " & CStr(Date(0, 0, 0, 0, 0, 0, pl.Duration * 1000)) & "  -  Tempo trascorso: " & CStr(Date(0, 0, 0, 0, 0, 0, pl.Position * 1000))
+
    Write "\rDurata del video: " & CStr(Time(0, 0, 0, pl.Duration * 1000)) & "  -  Tempo trascorso: " & CStr(Time(0, 0, 0, pl.Position * 1000))
    Wait 0.01
+
    Flush
  Loop Until (pl.Position >= pl.Duration)
+
    Wait 0.01
     
+
  Until (pl.Position >= pl.Duration) Or (bo = True)
  '''End'''
+
 +
  pl.Stop
 +
  pl.Close
 +
 
 +
  End
  
  
Riga 65: Riga 71:
 
L'esecuzione di una traccia può essere effettuata anche utilizzando le Classi ''MediaPipeline'' e ''MediaControl'' del Componente ''gb.media''.
 
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 l'esecuzione della traccia num. 10 del CD audio:
+
Mostriamo un semplice esempio, nel quale imposteremo come file-device del lettore DVD il percorso "''/dev/cdrom''".
  '''Public''' Sub Main()
+
  Public Sub Main()
 
+
 
   Dim pl As MediaPipeline
 
   Dim pl As MediaPipeline
 
   Dim src As MediaControl
 
   Dim src As MediaControl
 
    
 
    
  pl = New MediaPipeline
+
  pl = New MediaPipeline
 
    
 
    
  src = New MediaControl(pl, "playbin")
+
  src = New MediaControl(pl, "playbin")
  src["uri"] = "<FONT Color=#B22222>dvd:///dev/cdrom</font>"
+
  src["uri"] = "<FONT Color=#B22222>dvd:///dev/cdrom</font>"
 +
 
 +
  pl.Play()
 +
 
 +
  Repeat
 +
<FONT Color=gray>' ''Mostra in console la posizione, espressa in secondi, all'interno dei dati video processati:''</font>
 +
    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
 
    
 
    
   pl.Play()
+
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 = "<FONT Color=#B22222>dvd:///dev/cdrom</font>"
 +
  End With
 +
    
 +
  usc = New MediaControl(mp, "jackaudiosink")
 +
  mp.Audio.Output = usc
 +
 
 +
  mp.Play()
 
    
 
    
  Do
+
  Repeat
  <FONT Color=gray>' ''Mostra in console la posizione, espressa in secondi, all'interno dei dati processati:''</font>
+
  <FONT Color=gray>' ''Mostra in console la posizione, espressa in secondi, all'interno dei dati video processati:''</font>
    Write #File.Out, "\rDurata del brano: " & CStr(Date(0, 0, 0, 0, 0, 0, pl.Duration * 1000)) & "  -  Tempo trascorso: " & CStr(Date(0, 0, 0, 0, 0, 0, pl.Position * 1000))
+
    Write "\rDurata del video: " & CStr(Time(0, 0, 0, mp.Duration * 1000)) & "  -  Tempo trascorso: " & CStr(Time(0, 0, 0, mp.Position * 1000))
    Wait 0.01
+
    Flush
  Loop Until (pl.Position >= pl.Duration)
+
    Wait 0.01
 +
  Until (mp.Position >= mp.Duration) Or (bo = True)
 
    
 
    
  '''End'''
+
  mp.Stop
 +
  mp.Close
 +
   
 +
  End

Versione attuale delle 08:27, 30 lug 2023

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

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".

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