Ottenere un semplice spettroscopio mediante il Componente gb.media
Da Gambas-it.org - Wikipedia.
Versione del 6 nov 2023 alle 09:17 di Vuott (Discussione | contributi)
Usando il plugin "spectrascope" di GStreamer è possibile sottoporre il flusso di dati audio a un semplice spettroscopio.
Mostriamo un esempio con un file audio gestito con il plugin decodificatore "decodebin". BR>Si vedrà il semplice spettroscopio, fornito da GStreamer, e si ascolterà contemporaneamente l'audio.
Private bo As Boolean Public Sub Main() Dim pl As MediaPipeline Dim src, dcb, tee, que1, que2 As MediaControl Dim vcon, spe, vsnk As MediaControl Dim acon, asnk As MediaControl pl = New MediaPipeline As "MPipe" src = New MediaControl(pl, "filesrc") src["location"] = "/percorso/del/file/audio" dcb = New MediaControl(pl, "decodebin") tee = New MediaControl(pl, "tee") que1 = New MediaControl(pl, "queue") vcon = New MediaControl(pl, "audioconvert") spe = New MediaControl(pl, "spectrascope") vsnk = New MediaControl(pl, "ximagesink") que2 = New MediaControl(pl, "queue") acon = New MediaControl(pl, "audioconvert") asnk = New MediaControl(pl, "autoaudiosink") src.LinkTo(dcb) dcb.LinkLaterTo(tee) ' Parte video: tee.LinkTo(que1) que1.LinkTo(vcon) vcon.LinkTo(spe) spe.LinkTo(vsnk) ' Parte audio: tee.LinkTo(que2) que2.LinkTo(acon) acon.LinkTo(asnk) pl.Play() While pl.Duration < 1 Wait 0.01 Wend Print "La durata del file audio è: "; Time(0, 0, 0, pl.Duration * 1000) Repeat Write "\rTempo Trascorso: " & Time(0, 0, 0, pl.Position * 1000) Wait 0.01 Until bo pl.Close() End Public Sub MPipe_End() bo = True End