Differenze tra le versioni di "Mostrare un segnale di test video mediante il Componente gb.media"

Da Gambas-it.org - Wikipedia.
Riga 38: Riga 38:
  
 
Volendo invece ottenere un effetto di test video-audio, si potranno utilizzare due ''Pipeline'' di GStreamer: una dedicata alla gestione del test video, che sarà mostrato in una finestra esterna automaticamente generata dalle risorse di ''GStreamer''; l'altra è invece dedicata alla gestione del test audio, per il quale sarà emesso un tono continuo.
 
Volendo invece ottenere un effetto di test video-audio, si potranno utilizzare due ''Pipeline'' di GStreamer: una dedicata alla gestione del test video, che sarà mostrato in una finestra esterna automaticamente generata dalle risorse di ''GStreamer''; l'altra è invece dedicata alla gestione del test audio, per il quale sarà emesso un tono continuo.
<BR>L'immag
+
 
 +
Mostriamo un esempio questa volta con un'applicazione ''a riga di comando'':
 
  '''Public''' Sub Main()
 
  '''Public''' Sub Main()
 
    
 
    

Versione delle 04:03, 21 lug 2017

Per mostrare un segnale di test video mediante il Componente gb.media all'interno della superficie di un oggetto posto sul Form, è possibile adottare il seguente semplice codice:

Private pl As MediaPipeline


Public Sub Form_Open()
 
 Dim da As DrawingArea
 Dim src, xim As MediaControl
    
' Crea una "DrawingArea" come oggetto GUI da usare per l'uscita video:
  With da = New DrawingArea(Me)
    .X = 10
    .Y = 10
    .W = 320
    .H = 240
    .Background = Color.Transparent
  End With
  
  pl = New MediaPipeline
  
  src = New MediaControl(pl, "videotestsrc")
  xim = New MediaControl(pl, "ximagesink")
  
' Imposta la superficie dell'Oggetto, ove sarà mostrato il segnale di controllo video:
  xim.SetWindow(da)
  
  src.LinkTo(xim)
  
End


Public Sub Button1_Click()
  
  pl.Play()
  
End


Volendo invece ottenere un effetto di test video-audio, si potranno utilizzare due Pipeline di GStreamer: una dedicata alla gestione del test video, che sarà mostrato in una finestra esterna automaticamente generata dalle risorse di GStreamer; l'altra è invece dedicata alla gestione del test audio, per il quale sarà emesso un tono continuo.

Mostriamo un esempio questa volta con un'applicazione a riga di comando:

Public Sub Main()
 
 Dim pl1, pl2 As Mediapipeline
 Dim src1, src2, con, res, snk1, snk2 As MediaControl
   
' "Pipeline" dedicata al video:
  pl1 = New MediaPipeline
  src1 = New MediaControl(pl1, "videotestsrc")
  snk1 = New MediaControl(pl1, "ximagesink")
  src1.LinkTo(snk1)
  
' "Pipeline" dedicata all'audio:
  pl2 = New MediaPipeline
  src2 = New MediaControl(pl2, "audiotestsrc")
  con = New MediaControl(pl2, "audioconvert")
  res = New MediaControl(pl2, "audioresample")
  snk2 = New MediaControl(pl2, "alsasink")
  src2.LinkTo(con)
  con.LinkTo(res)
  res.LinkTo(snk2)
  
  pl1.play()
  pl2.play()
  
  Do
    Wait 0.01
  Loop
  
End