Differenze tra le versioni di "Ottenere un semplice spettroscopio mediante il Componente gb.media"

Da Gambas-it.org - Wikipedia.
Riga 2: Riga 2:
  
 
Mostriamo un esempio con un file audio gestito con il plugin decodificatore "decodebin".
 
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.
+
<BR>Si vedrà il semplice spettroscopio, fornito da ''GStreamer'', e si ascolterà contemporaneamente l'audio.
 
  Private bo As Boolean
 
  Private bo As Boolean
 
   
 
   

Versione delle 10:18, 6 nov 2023

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".
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