Convertire i formati audio mediante il Componente gb.media
Vai alla navigazione
Vai alla ricerca
Utilizzando i plugin di GStreamer con le Classi MediaControl e MediaPipeline del Componente gb.media, è possibile effettuare diverse conversioni di file audio da un formato ad un altro.
Mostriamo di seguito qualche esempio pratico.
Conversione audio dal formato WAV al formato MP3
Library "libc:6"
' void exit (int __status)
' Terminate program execution with STATUS.
Private Extern exit_C(i As Integer) As Integer Exec "exit"
Public Sub Main()
Dim pl As MediaPipeline
Dim src, wprs, cnv, lam, snk As MediaControl
pl = New MediaPipeline
src = New MediaControl(pp, "filesrc")
src["location"] = "/percorso/del/file.wav" ' "location" è una proprietà del plugin "filesrc"
wprs = New MediaControl(pp, "wavparse")
cnv = New MediaControl(pp, "audioconvert")
lam = New MediaControl(pp, "lamemp3enc")
snk = New MediaControl(pp, "filesink")
snk["location"] = "/percorso/del/file.mp3"
src.LinkTo(wprs)
wprs.LinkTo(cnv)
cnv.LinkTo(lam)
lam.LinkTo(snk)
pl.State = Media.Playing
pl.Play()
Sleep 1
While pl.Duration > pl.Position
Write #File.Out, "\rTempo: " & Date(0, 0, 0, 0, 0, 0, pl.Position * 1000)
Wend
exit_C(0)
End
Conversione audio dal formato WAV al formato OGG
Library "libc:6"
' void exit (int __status)
' Terminate program execution with STATUS.
Private Extern exit_C(i As Integer) As Integer Exec "exit"
Public Sub Main()
Dim pl As MediaPipeline
Dim src, wprs, cnv, vor, mux, snk As MediaControl
pl = New MediaPipeline
src = New MediaControl(pp, "filesrc")
src["location"] = "/percorso/del/file.wav" ' "location" è una proprietà del plugin "filesrc"
wprs = New MediaControl(pp, "wavparse")
cnv = New MediaControl(pp, "audioconvert")
vor = New MediaControl(pp, "vorbisenc")
mux = New MediaControl(pp, "oggmux")
snk = New MediaControl(pp, "filesink")
snk["location"] = "/percorso/del/file.mp3"
src.LinkTo(wprs)
wprs.LinkTo(cnv)
cnv.LinkTo(vor)
vor.LinkTo(mux)
mux.LinkTo(snk)
pl.State = Media.Playing
pl.Play()
Sleep 1
While pl.Duration > pl.Position
Write #File.Out, "\rTempo: " & Date(0, 0, 0, 0, 0, 0, pl.Position * 1000)
Wend
exit_C(0)
End