Convertire i formati audio mediante il Componente gb.media

Da Gambas-it.org - Wikipedia.
Versione del 28 set 2016 alle 19: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...")

(diff) ← Versione meno recente | Versione attuale (diff) | Versione più recente → (diff)

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