Differenze tra le versioni di "Equalizzatore audio grafico Grafico a 10 bande mediante il Componente gb.media"
Da Gambas-it.org - Wikipedia.
(Creata pagina con "E' possibile realizzare mediante le risorse del Componente ''gb.media'' un equalizzatore audio grafico a 10 bande. Bisognerà utilizzare il plugin "''equalizer-10bands'' " di...") |
|||
Riga 3: | Riga 3: | ||
Bisognerà utilizzare il plugin "''equalizer-10bands'' " di GStreamer. | Bisognerà utilizzare il plugin "''equalizer-10bands'' " di GStreamer. | ||
− | Mostriamo un semplice codice (è necessario attivare anche i Componenti ''gb.qt5'' e ''gb.qt5.ext'') per eseguire - ad esempio - un file audio wav: | + | Mostriamo un semplice codice (è necessario attivare anche i Componenti ''gb.qt5'' e ''gb.qt5.ext'') per eseguire - ad esempio - un file audio wav o mp3: |
Private dl As Dial | Private dl As Dial | ||
Private dd As New Dial[] | Private dd As New Dial[] | ||
Riga 17: | Riga 17: | ||
Dim lcd As LCDLabel | Dim lcd As LCDLabel | ||
Dim src, dcd, con, snk As MediaControl | Dim src, dcd, con, snk As MediaControl | ||
− | Dim audio, | + | Dim audio, par, cnv As String |
− | audio = "<FONT Color=gray>''/percorso/del/file | + | audio = "<FONT Color=gray>''/percorso/del/file/audio''</font>" |
With Me | With Me | ||
Riga 62: | Riga 62: | ||
.Text = String.Chr(&23E3) | .Text = String.Chr(&23E3) | ||
End With | End With | ||
+ | |||
+ | Select Case File.Ext(audio) | ||
+ | Case "wav" | ||
+ | par = "wavparse" | ||
+ | cnv = "audioconvert" | ||
+ | Case "mp3" | ||
+ | par = "mpegaudioparse" | ||
+ | cnv = "mpg123audiodec" | ||
+ | End Select | ||
pl = New MediaPipeline | pl = New MediaPipeline | ||
Riga 67: | Riga 76: | ||
src = New MediaControl(pl, "filesrc") | src = New MediaControl(pl, "filesrc") | ||
src["location"] = audio | src["location"] = audio | ||
− | dcd = New MediaControl(pl, | + | dcd = New MediaControl(pl, par) |
− | con = New MediaControl(pl, | + | con = New MediaControl(pl, cnv) |
equ = New MediaControl(pl, "equalizer-10bands") | equ = New MediaControl(pl, "equalizer-10bands") | ||
snk = New MediaControl(pl, "alsasink") | snk = New MediaControl(pl, "alsasink") |
Versione attuale delle 18:39, 6 ott 2021
E' possibile realizzare mediante le risorse del Componente gb.media un equalizzatore audio grafico a 10 bande.
Bisognerà utilizzare il plugin "equalizer-10bands " di GStreamer.
Mostriamo un semplice codice (è necessario attivare anche i Componenti gb.qt5 e gb.qt5.ext) per eseguire - ad esempio - un file audio wav o mp3:
Private dl As Dial Private dd As New Dial[] Private llcc As New LCDLabel[] Private tb As ToggleButton Private pl As MediaPipeline Private equ As MediaControl Public Sub Form_Open() Dim b As Byte Dim lcd As LCDLabel Dim src, dcd, con, snk As MediaControl Dim audio, par, cnv As String audio = "/percorso/del/file/audio" With Me .W = 700 .H = 200 End With For b = 0 To 9 With dl = New Dial(Me) As "Dl" .X = (b + 1) * 60 .Y = 100 .W = 60 .H = 60 .MaxValue = 12.00 .MinValue = -24.00 .Value = 0 .Name = CStr(b) .Background = Color.Black End With dd.Push(dl) With lcd = New LCDLabel(Me) .X = (b + 1) * 60 .Y = 60 .W = 60 .H = 20 .Alignment = Align.Center .Foreground = Color.Yellow .Value = 0.00 .Background = Color.Black End With llcc.Push(lcd) Next With tb = New ToggleButton(Me) As "Toggle" .X = 16 .Y = 100 .W = 30 .H = 60 .Font.Size = 18 .Font.Bold = True .Foreground = Color.Red .Text = String.Chr(&23E3) End With Select Case File.Ext(audio) Case "wav" par = "wavparse" cnv = "audioconvert" Case "mp3" par = "mpegaudioparse" cnv = "mpg123audiodec" End Select pl = New MediaPipeline src = New MediaControl(pl, "filesrc") src["location"] = audio dcd = New MediaControl(pl, par) con = New MediaControl(pl, cnv) equ = New MediaControl(pl, "equalizer-10bands") snk = New MediaControl(pl, "alsasink") src.LinkTo(dcd) dcd.LinkTo(con) con.LinkTo(equ) equ.LinkTo(snk) End Public Sub Dl_Change() If pl.State <> Media.Playing Then Return equ["band" & Last.Name] = Last.Value llcc[Val(Last.Name)].Value = Last.Value End Public Sub Toggle_Click() Dim d As Dial Dim lc As LCDLabel If tb.Value Then tb.Foreground = Color.Green pl.Play() Else tb.Foreground = Color.Red pl.Stop() For Each d In dd d.Value = 0 Next For Each lc In llcc lc.Value = 0 Next Endif End