Estrarre una traccia di un CD audio convertendola in un file WAV con il Componente gb.media
Da Gambas-it.org - Wikipedia.
Versione del 30 giu 2017 alle 16:12 di Vuott (Discussione | contributi) (Creata pagina con "Per estrarre una traccia di un CD audio e convertirla conseguentemente in un file WAV mediante il Componente ''gb.media'', è possibile utilizzare il plugin "''cdiocddasrc''"...")
Per estrarre una traccia di un CD audio e convertirla conseguentemente in un file WAV mediante il Componente gb.media, è possibile utilizzare il plugin "cdiocddasrc" di GStreamer.
Mostriamo un semplice esempio pratico:
Public Sub Main() Dim pl As MediaPipeline Dim src, cnv, enc, snk As MediaControl pl = New MediaPipeline src = New MediaControl(pl, "cdiocddasrc") src["track"] = 10 cnv = New MediaControl(pl, "audioconvert") enc = New MediaControl(pl, "wavenc") snk = New MediaControl(pl, "filesink") snk["location"] = "/tmp/audio.wav" src.LinkTo(cnv) cnv.LinkTo(enc) enc.LinkTo(snk) ' Avvia la procedura di estrazione dei dati audio della traccia e della successiva conversione nel file WAV: 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, snk As MediaControl pl = New MediaPipeline src = New MediaControl(pl, "cdparanoiasrc") src["track"] = 10 cnv = New MediaControl(pl, "audioconvert") enc = New MediaControl(pl, "wavenc") snk = New MediaControl(pl, "filesink") snk["location"] = "/tmp/audio.wav" src.LinkTo(cnv) cnv.LinkTo(enc) enc.LinkTo(snk) ' Avvia la procedura di estrazione dei dati audio della traccia e della successiva conversione nel file WAV: 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