Estrarre una traccia di un CD audio convertendola in un file MP3 con il Componente gb.media

Da Gambas-it.org - Wikipedia.

Per estrarre una traccia di un CD audio e convertirla conseguentemente in un file MP3 mediante il Componente gb.media, è possibile utilizzare il plugin "cdiocddasrc" di GStreamer.

Mostriamo un semplice esempio pratico:

Private Enum quality = 0, bitrate


Public Sub Main()
 
 Dim pl As MediaPipeline
 Dim src, cnv, enc, mux, snk As MediaControl
 
  pl = New MediaPipeline
 
  src = New MediaControl(pl, "cdiocddasrc")
  src["track"] = 10
  cnv = New MediaControl(pl, "audioconvert")
  enc = New MediaControl(pl, "lamemp3enc")
  enc["target"] = bitrate
  enc["bitrate"] = 192
  mux = New MediaControl(pl, "mpegpsmux")
  snk = New MediaControl(pl, "filesink")
  snk["location"] = "/tmp/audio.mp3"
  
  src.LinkTo(cnv)
  cnv.LinkTo(enc)
  enc.LinkTo(mux)
  mux.LinkTo(snk)
  
' Avvia la procedura di estrazione dei dati audio della traccia e della successiva conversione nel file MP3:
  pl.Play()
 
  Do
' Mostra in console la posizione, espressa in secondi, all'interno dei dati audio processati:
    Write #File.Out, "\rDurata del brano: " & CStr(Date(0, 0, 0, 0, 0, 0, pl.Duration * 1000)) & "   -   Tempo trascorso: " & CStr(Date(0, 0, 0, 0, 0, 0, pl.Position * 1000))
    Wait 0.01
  Loop Until (pl.Position >= pl.Duration)
 
  pl.Stop()
  pl.Close()
  
End


Analogamente possiamo utilizzare anche il plugin "cdparanoiasrc" di GStreamer.

Mostriamo un semplice esempio pratico:

Public Sub Main()
 
 Dim pl As MediaPipeline
 Dim src, cnv, enc, mux, snk As MediaControl
 
  pl = New MediaPipeline
 
  src = New MediaControl(pl, "cdparanoiasrc")
  src["track"] = 10
  cnv = New MediaControl(pl, "audioconvert")
  enc = New MediaControl(pl, "lamemp3enc")
  enc["target"] = bitrate
  enc["bitrate"] = 192
  mux = New MediaControl(pl, "mpegpsmux")
  snk = New MediaControl(pl, "filesink")
  snk["location"] = "/tmp/audio.mp3"
  
  src.LinkTo(cnv)
  cnv.LinkTo(enc)
  enc.LinkTo(mux)
  mux.LinkTo(snk)
  
' Avvia la procedura di estrazione dei dati audio della traccia e della successiva conversione nel file MP3:
  pl.Play()
 
  Do
' Mostra in console la posizione, espressa in secondi, all'interno dei dati audio processati:
    Write #File.Out, "\rDurata del brano: " & CStr(Date(0, 0, 0, 0, 0, 0, pl.Duration * 1000)) & "   -   Tempo trascorso: " & CStr(Date(0, 0, 0, 0, 0, 0, pl.Position * 1000))
    Wait 0.01
  Loop
 
  pl.Stop()
  pl.Close()
  
End