Differenze tra le versioni di "Mostrare un segnale di test video mediante il Componente gb.media"
Da Gambas-it.org - Wikipedia.
Riga 33: | Riga 33: | ||
pl.Play() | pl.Play() | ||
+ | |||
+ | '''End''' | ||
+ | |||
+ | |||
+ | 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. | ||
+ | '''Public''' Sub Main() | ||
+ | |||
+ | Dim pl1, pl2 As Mediapipeline | ||
+ | Dim src1, src2, con, res, snk1, snk2 As MediaControl | ||
+ | |||
+ | pl1 = New MediaPipeline | ||
+ | src1 = New MediaControl(pl1, "videotestsrc") | ||
+ | snk1 = New MediaControl(pl1, "ximagesink") | ||
+ | src1.LinkTo(snk1) | ||
+ | |||
+ | 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''' | '''End''' |
Versione delle 03:58, 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 video, l'altra alla gestione dell'audio che emetterà un tono continuo.
Public Sub Main() Dim pl1, pl2 As Mediapipeline Dim src1, src2, con, res, snk1, snk2 As MediaControl pl1 = New MediaPipeline src1 = New MediaControl(pl1, "videotestsrc") snk1 = New MediaControl(pl1, "ximagesink") src1.LinkTo(snk1) 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