Differenze tra le versioni di "Modificare ad un file WAV la frequenza di campionamento, il numero di canali e la risoluzione bit mediante il componente gb.media"
Da Gambas-it.org - Wikipedia.
(Creata pagina con "Mostriamo di seguito un esempio in cui con le risorse delle Classi "''MediaPipeline''", "''MediaControl''" e "''Mediafilter''" si procede alla modifica della frequenza di camp...") |
|||
(4 versioni intermedie di uno stesso utente non sono mostrate) | |||
Riga 2: | Riga 2: | ||
In particolare nell'esempio che segue un file WAV di hz 44100, 2 canali, 16 bit viene trasformato in un file audio WAV di hz 8000, 1 canale, 8 bit. | In particolare nell'esempio che segue un file WAV di hz 44100, 2 canali, 16 bit viene trasformato in un file audio WAV di hz 8000, 1 canale, 8 bit. | ||
− | + | Private bo As Boolean | |
+ | |||
+ | |||
+ | Public Sub Main() | ||
Dim pl As MediaPipeline | Dim pl As MediaPipeline | ||
Dim src, par, res, con1, con2, enc, snk As MediaControl | Dim src, par, res, con1, con2, enc, snk As MediaControl | ||
Dim flt As MediaFilter | Dim flt As MediaFilter | ||
− | + | ||
− | + | pl = New MediaPipeline As "PLine" | |
− | + | ||
− | + | src = New MediaControl(pl, "filesrc") | |
− | + | src["location"] = "<FONT Color=darkgreen>''/percorso/del/file.wav''</font>" | |
− | + | par = New MediaControl(pl, "wavparse") | |
− | + | res = New MediaControl(pl, "audioresample") | |
− | + | con1 = New MediaControl(pl, "audioconvert") | |
− | + | flt = New MediaFilter(pl, "<FONT Color=#B22222>audio/x-raw,rate=8000,channels=1,format=S8</font>") | |
− | + | con2 = New MediaControl(pl, "audioconvert") | |
− | + | enc = New MediaControl(pl, "wavenc") | |
− | + | snk = New MediaControl(pl, "filesink") | |
− | + | snk["location"] = "/tmp/nuovo_file.wav" | |
− | + | ||
− | + | src.LinkTo(par) | |
− | + | par.LinkTo(res) | |
− | + | res.LinkTo(con1) | |
− | + | con1.LinkTo(flt) | |
− | + | flt.LinkTo(con2) | |
− | + | con2.LinkTo(enc) | |
− | + | enc.LinkTo(snk) | |
− | + | ||
− | + | pl.Play() | |
− | + | ||
− | + | Repeat | |
− | + | Write "\r\e[31m\e[5mAttendere: conversione in atto...\e[0m" | |
− | + | Wait 0.01 | |
− | + | Until bo | |
− | + | ||
− | + | pl.Stop() | |
− | + | pl.Close() | |
− | + | ||
− | + | Write "\r\e[0mConversione terminata " | |
− | + | ||
− | ''' | + | End |
+ | |||
+ | Public Sub PLine_End() <FONT Color=gray>' ''Questo Evento viene sollevato, quando la conversione è terminata''</font> | ||
+ | |||
+ | bo = True | ||
+ | |||
+ | End |
Versione attuale delle 17:03, 17 gen 2024
Mostriamo di seguito un esempio in cui con le risorse delle Classi "MediaPipeline", "MediaControl" e "Mediafilter" si procede alla modifica della frequenza di campionamento, del numero di canali e della risoluzione in bit di un file audio di formato WAV.
In particolare nell'esempio che segue un file WAV di hz 44100, 2 canali, 16 bit viene trasformato in un file audio WAV di hz 8000, 1 canale, 8 bit.
Private bo As Boolean Public Sub Main() Dim pl As MediaPipeline Dim src, par, res, con1, con2, enc, snk As MediaControl Dim flt As MediaFilter pl = New MediaPipeline As "PLine" src = New MediaControl(pl, "filesrc") src["location"] = "/percorso/del/file.wav" par = New MediaControl(pl, "wavparse") res = New MediaControl(pl, "audioresample") con1 = New MediaControl(pl, "audioconvert") flt = New MediaFilter(pl, "audio/x-raw,rate=8000,channels=1,format=S8") con2 = New MediaControl(pl, "audioconvert") enc = New MediaControl(pl, "wavenc") snk = New MediaControl(pl, "filesink") snk["location"] = "/tmp/nuovo_file.wav" src.LinkTo(par) par.LinkTo(res) res.LinkTo(con1) con1.LinkTo(flt) flt.LinkTo(con2) con2.LinkTo(enc) enc.LinkTo(snk) pl.Play() Repeat Write "\r\e[31m\e[5mAttendere: conversione in atto...\e[0m" Wait 0.01 Until bo pl.Stop() pl.Close() Write "\r\e[0mConversione terminata " End Public Sub PLine_End() ' Questo Evento viene sollevato, quando la conversione è terminata bo = True End