Convertire i formati audio mediante il Componente gb.media
Da Gambas-it.org - Wikipedia.
Versione del 28 set 2016 alle 21:17 di Vuott (Discussione | contributi)
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(pl, "filesrc") src["location"] = "/percorso/del/file.wav" ' "location" è una proprietà del plugin "filesrc" wprs = New MediaControl(pl, "wavparse") cnv = New MediaControl(pl, "audioconvert") lam = New MediaControl(pl, "lamemp3enc") snk = New MediaControl(pl, "filesink") snk["location"] = "/percorso/del/file.mp3" ' Colleghiamo fra loro all'interno della pipeline gli oggetti MediaControl impostati: 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(pl, "filesrc") src["location"] = "/percorso/del/file.wav" ' "location" è una proprietà del plugin "filesrc" wprs = New MediaControl(pl, "wavparse") cnv = New MediaControl(pl, "audioconvert") vor = New MediaControl(pl, "vorbisenc") mux = New MediaControl(pl, "oggmux") snk = New MediaControl(pl, "filesink") snk["location"] = "/percorso/del/file.ogg" 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
Conversione audio dal formato MP3 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, mad, cnv, vor, mux, snk As MediaControl pl = New MediaPipeline src = New MediaControl(pl, "filesrc") src["location"] = "/percorso/del/file.mp3" ' "location" è una proprietà del plugin "filesrc" mad = New MediaControl(pl, "mad") cnv = New MediaControl(pl, "audioconvert") vor = New MediaControl(pl, "vorbisenc") mux = New MediaControl(pl, "oggmux") snk = New MediaControl(pl, "filesink") snk["location"] = "/percorso/del/file.ogg" src.LinkTo(mad) mad.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