Differenze tra le versioni di "Eseguire due o più file audio contemporaneamente mediante la Classe ''MediaPipeline'' del componente gb.media"
Da Gambas-it.org - Wikipedia.
Riga 54: | Riga 54: | ||
pl.Play() | pl.Play() | ||
− | + | While pl.Duration > pl.Position | |
− | Wait 0. | + | Write "\rTempo: " & Date(0, 0, 0, 0, 0, 0, pl.Position * 1000) |
− | + | Wait 0.001 | |
+ | Wend | ||
+ | |||
+ | <FONT Color=gray>' ''Libera la memoria e va in chiusura:''</font> | ||
+ | pl.Stop | ||
+ | pl.Close | ||
+ | |||
+ | Write "\nEsecuzione terminata !" | ||
'''End''' | '''End''' |
Versione delle 15:16, 12 ago 2018
Mostriamo di seguito un esempio pratico per eseguire contemporaneamente due file audio (in questo caso di formato WAV) mediante la Classe MediaPipeline del Componente gb.media.
I due file audio devono avere la medesima frequenza di campionamento !
Public Sub Main() Dim pl As MediaPipeline Dim src, src2, wap, wap2, res, res2, con As MediaControl Dim con2, vol, vol2, pan, pan2 As MediaControl Dim mix, snk As MediaControl pl = New MediaPipeline ' Primo file audio wav: src = New MediaControl(pl, "filesrc") src["location"] = "/percorso/del/primo/file.wav" wap = New MediaControl(pl, "wavparse") res = New MediaControl(pl, "audioresample") con = New MediaControl(pl, "audioconvert") vol = New MediaControl(pl, "volume") vol["volume"] = 0.8 pan = New MediaControl(pl, "audiopanorama") pan["panorama"] = 1.00 ' Pan a destra ' Secondo file audio wav: src2 = New MediaControl(pl, "filesrc") src2["location"] = "/percorso/del/secondo/file.wav" wap2 = New MediaControl(pl, "wavparse") res2 = New MediaControl(pl, "audioresample") con2 = New MediaControl(pl, "audioconvert") vol2 = New MediaControl(pl, "volume") vol2["volume"] = 0.2 pan2 = New MediaControl(pl, "audiopanorama") pan2["panorama"] = -1.00 ' Pan a sinistra mix = New MediaControl(pl, "audiomixer") snk = New MediaControl(pl, "alsasink") src.LinkTo(wap) wap.LinkTo(res) res.LinkTo(con) con.LinkTo(vol) vol.LinkTo(pan) pan.LinkTo(mix) ' La prima sorgente audio alla fine converge nel mixer audio: src2.LinkTo(wap2) wap2.LinkTo(res2) res2.LinkTo(con2) con2.LinkTo(vol2) vol2.LinkTo(pan2) pan2.LinkTo(mix) ' La seconda sorgente audio alla fine converge nel mixer audio: mix.LinkTo(snk) pl.Play() While pl.Duration > pl.Position Write "\rTempo: " & Date(0, 0, 0, 0, 0, 0, pl.Position * 1000) Wait 0.001 Wend ' Libera la memoria e va in chiusura: pl.Stop pl.Close Write "\nEsecuzione terminata !" End