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

Da Gambas-it.org - Wikipedia.
Riga 37: Riga 37:
  
  
Volendo invece ottenere un effetto di test video-audio, si potranno utilizzare due ''Pipeline'' di GStreamer: una dedicata alla gestione video, l'altra alla gestione dell'audio che emetterà 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
 
  '''Public''' Sub Main()
 
  '''Public''' Sub Main()
 
    
 
    

Versione delle 04:02, 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.
L'immag

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