Differenze tra le versioni di "Estrarre una traccia di un CD audio convertendola in un file WAV con il Componente gb.media"
Da Gambas-it.org - Wikipedia.
(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''"...") |
|||
Riga 1: | Riga 1: | ||
+ | ===Uso del 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''. | 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''. | ||
Riga 35: | Riga 36: | ||
+ | ====Impostazione della frequenza di campionamento (''rate'') e dei canali==== | ||
+ | Per impostare preliminarmente i valori della frequenza di campionamento (''rate'') e dei canali, che il file WAV assumerà, si può operare come segue: | ||
+ | Private pl As MediaPipeline | ||
+ | |||
+ | |||
+ | '''Public''' Sub Form_Open() | ||
+ | |||
+ | Dim src, cnv, res, enc, snk As MediaControl | ||
+ | Dim flt As MediaFilter | ||
+ | |||
+ | pl = New MediaPipeline | ||
+ | |||
+ | src = New MediaControl(pl, "cdiocddasrc") | ||
+ | src["track"] = 2 | ||
+ | cnv = New MediaControl(pl, "audioconvert") | ||
+ | res = New MediaControl(pl, "audioresample") | ||
+ | <FONT Color=gray>' ''Imposta la frequenza di campionamento ed il numero dei canali del file audio WAV che sarà creato:''</font> | ||
+ | flt = New MediaFilter(pl, "audio/x-raw,rate=11025,channels=2") | ||
+ | enc = New MediaControl(pl, "wavenc") | ||
+ | snk = New MediaControl(pl, "filesink") | ||
+ | snk["location"] = "/tmp/prova.wav" | ||
+ | |||
+ | src.LinkTo(cnv) | ||
+ | cnv.LinkTo(res) | ||
+ | res.LinkTo(flt) | ||
+ | flt.LinkTo(enc) | ||
+ | enc.LinkTo(snk) | ||
+ | |||
+ | '''End''' | ||
+ | |||
+ | |||
+ | '''Public''' Sub Button1_Click() | ||
+ | |||
+ | pl.Play() | ||
+ | |||
+ | Do | ||
+ | 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) | ||
+ | |||
+ | '''End''' | ||
+ | |||
+ | |||
+ | '''Public''' Sub Button2_Click() | ||
+ | |||
+ | pl.Stop() | ||
+ | pl.Close() | ||
+ | |||
+ | '''End''' | ||
+ | |||
+ | |||
+ | ===Uso del plugin ''cdparanoiasrc''=== | ||
Analogamente possiamo utilizzare anche il plugin "''cdparanoiasrc''" di ''GStreamer''. | Analogamente possiamo utilizzare anche il plugin "''cdparanoiasrc''" di ''GStreamer''. | ||
Riga 69: | Riga 122: | ||
'''End''' | '''End''' | ||
+ | |||
+ | |||
+ | Per l'impostazione dei valori della frequenza di campionamento (''rate'') e dei canali, che il file WAV assumerà, il codice avrà la medesima costituzione di quello visto appena sopra per il plugin ''cdiocddasrc''. |
Versione delle 17:23, 30 giu 2017
Uso del 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
Impostazione della frequenza di campionamento (rate) e dei canali
Per impostare preliminarmente i valori della frequenza di campionamento (rate) e dei canali, che il file WAV assumerà, si può operare come segue:
Private pl As MediaPipeline Public Sub Form_Open() Dim src, cnv, res, enc, snk As MediaControl Dim flt As MediaFilter pl = New MediaPipeline src = New MediaControl(pl, "cdiocddasrc") src["track"] = 2 cnv = New MediaControl(pl, "audioconvert") res = New MediaControl(pl, "audioresample") ' Imposta la frequenza di campionamento ed il numero dei canali del file audio WAV che sarà creato: flt = New MediaFilter(pl, "audio/x-raw,rate=11025,channels=2") enc = New MediaControl(pl, "wavenc") snk = New MediaControl(pl, "filesink") snk["location"] = "/tmp/prova.wav" src.LinkTo(cnv) cnv.LinkTo(res) res.LinkTo(flt) flt.LinkTo(enc) enc.LinkTo(snk) End Public Sub Button1_Click() pl.Play() Do 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) End Public Sub Button2_Click() pl.Stop() pl.Close() End
Uso del plugin cdparanoiasrc
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
Per l'impostazione dei valori della frequenza di campionamento (rate) e dei canali, che il file WAV assumerà, il codice avrà la medesima costituzione di quello visto appena sopra per il plugin cdiocddasrc.