Convertire i formati audio mediante il Componente gb.media
Da Gambas-it.org - Wikipedia.
Versione del 28 set 2016 alle 18:19 di Vuott (Discussione | contributi) (Creata pagina con "Utilizzando i plugin di ''GStreamer'' con le Classi ''MediaControl'' e MediaPipeline'' del Componente ''gb.media'', è possibile effettuare diverse conversioni di file audio d...")
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