Registrare la ripresa video di una webcam mediante l'oggetto MediaView del componente gb.media.form
Da Gambas-it.org - Wikipedia.
Versione del 5 ott 2023 alle 08:56 di Vuott (Discussione | contributi) (Creata pagina con "Per mostrare la ripresa video di una webcam mediante il Controllo MediaView, si deve impostare il percorso del dispositivo che si riferisce ala wbcam: v4l2:///dev/videoN ladd...")
Per mostrare la ripresa video di una webcam mediante il Controllo MediaView, si deve impostare il percorso del dispositivo che si riferisce ala wbcam:
v4l2:///dev/videoN
laddove N è un numero di indice iniziale 0 (zero).
Mostriamo un semplice esempio, usando la Classe MediaPipeline necessaria per catturare la ripresa video:
Public Sub Form_Open() Me.Show MediaView1.URL = "v4l2:///dev/video0" Dim ob As Object Dim pn1, pn2 As Panel Dim DrawingArea1 As DrawingArea Dim pl As MediaPipeline Dim src, cnv, enc, mux, snk As MediaControl Dim temporaneo As String ' Individua l'Oggetto "DrawingArea", 'figlio' del Controllo "MediaView": ob = MediaView1.Children[0] pn1 = ob.Children[0] pn2 = pn1.Children[0] DrawingArea1 = pn2.Children[0] pl = New MediaPipeline As "PLine" temporaneo = Temp src = New MediaControl(pl, "ximagesrc") ' Assega alla Propietà "xid" il numero identificativo della "DrawingArea", 'Figlia' del Controllo "MediaView": src["xid"] = DrawingArea1.Id cnv = New MediaControl(pl, "videoconvert") enc = New MediaControl(pl, "x264enc") mux = New MediaControl(pl, "matroskamux") snk = New MediaControl(pl, "filesink") ' Imposta il percorso finale del file di formato mkv (Matroska): snk["location"] = temporaneo ' Collega i plugin del sistema audio "GStreamer": src.LinkTo(cnv) cnv.LinkTo(enc) enc.LinkTo(mux) mux.LinkTo(snk) ' Resta in attesa finché la registrazione non viene avviata dall'utente: Repeat Wait 0.01 Until MediaView1.State = Media.Playing pl.play ' Resta in attesa che la registrazione venga interrotta dall'utente: Repeat Wait 0.01 Until MediaView1.State = Media.Ready pl.Stop pl.Close Print "Registrazione terminata !" If Exist("/tmp/video.mkv") Then Kill "/tmp/video.mkv" Copy temporaneo To "/tmp/video.mkv" Print "File video creato !" End