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

Da Gambas-it.org - Wikipedia.
 
(2 versioni intermedie di uno stesso utente non sono mostrate)
Riga 5: Riga 5:
  
 
==Uso della sola Classe ''MediaPlayer''==
 
==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''".
 
Mostriamo un semplice esempio, nel quale imposteremo come file-device del lettore DVD il percorso "''/dev/cdrom''".
 
  Private bo As Boolean
 
  Private bo As Boolean
 
   
 
   
 
   
 
   
  '''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 video: " & 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 44: Riga 44:
  
 
Mostriamo un semplice esempio, nel quale imposteremo come file-device del lettore DVD il percorso "''/dev/cdrom''".
 
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 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 video: " & 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 66: Riga 70:
  
 
Mostriamo un semplice esempio, nel quale imposteremo come file-device del lettore DVD il percorso "''/dev/cdrom''".
 
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()
+
  pl.Play()
 
+
 
  Do
+
  Repeat
 
  <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 video: " & 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)
 +
 +
  pl.Stop
 +
  pl.Close
 
    
 
    
  '''End'''
+
  End
  
  
==Uso delle Classi ''MediaPipeline'' e ''MediaControl'' e del plug-in ''jackaudiosink''==
+
==Uso delle Classi ''MediaPlayer'' e ''MediaControl'' e del plug-in ''jackaudiosink''==
L'uso delle Classi ''MediaPipeline'' e ''MediaControl'' e del plug-in ''jackaudiosink'' richiede che sia preliminarmente avviato il programma server ''Jack''.
+
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''".
 
Mostriamo un esempio, nel quale imposteremo come file-device del lettore DVD il percorso "''/dev/cdrom''".
  '''Public''' Sub Main()
+
  Public Sub Main()
 
+
 
   Dim mp As MediaPlayer
 
   Dim mp As MediaPlayer
 
   Dim usc As MediaControl
 
   Dim usc As MediaControl
 
        
 
        
  With mp = New MediaPlayer
+
  With mp = New MediaPlayer
    .URL = "<FONT Color=#B22222>dvd:///dev/cdrom</font>"
+
    .URL = "<FONT Color=#B22222>dvd:///dev/cdrom</font>"
  End With
+
  End With
 
    
 
    
  usc = New MediaControl(mp, "jackaudiosink")
+
  usc = New MediaControl(mp, "jackaudiosink")
  mp.Audio.Output = usc
+
  mp.Audio.Output = usc
 +
 
 +
  mp.Play()
 
    
 
    
  mp.Play()
+
  Repeat
 
 
  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 video: " & 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
 
 
    
 
    
  Quit
+
  mp.Stop
 +
  mp.Close
 
      
 
      
  '''End'''
+
  End

Versione attuale delle 15:23, 13 set 2024

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