Differenze tra le versioni di "Eseguire un file audio e un file MIDI contemporaneamente mediante la Classe ''MediaPipeline'' del componente gb.media"
Da Gambas-it.org - Wikipedia.
(Creata pagina con "Per eseguire contemporaneamente un file audio (nell'esempio che segue sarà un file WAV) e un file MIDI mediante la Classe ''MediaPipeline'' del Componente ''gb.media'', si do...") |
|||
(Una versione intermedia di uno stesso utente non è mostrata) | |||
Riga 12: | Riga 12: | ||
pl = New MediaPipeline As PLine | pl = New MediaPipeline As PLine | ||
− | <FONT Color=gray>' '' | + | <FONT Color=gray>' ''Il file audio wav:''</font> |
src = New MediaControl(pl, "filesrc") | src = New MediaControl(pl, "filesrc") | ||
− | src["location"] = "<FONT Color=gray>''/percorso/del | + | src["location"] = "<FONT Color=gray>''/percorso/del/file.wav''</font>" |
wap = New MediaControl(pl, "wavparse") | wap = New MediaControl(pl, "wavparse") | ||
res = New MediaControl(pl, "audioresample") | res = New MediaControl(pl, "audioresample") | ||
Riga 31: | Riga 31: | ||
con2 = New MediaControl(pl, "audioconvert") | con2 = New MediaControl(pl, "audioconvert") | ||
vol2 = New MediaControl(pl, "volume") | vol2 = New MediaControl(pl, "volume") | ||
− | vol2["volume"] = 0. | + | vol2["volume"] = 0.8 |
pan2 = New MediaControl(pl, "audiopanorama") | pan2 = New MediaControl(pl, "audiopanorama") | ||
pan2["panorama"] = -1.00 <FONT Color=gray>' ''Pan a sinistra''</font> | pan2["panorama"] = -1.00 <FONT Color=gray>' ''Pan a sinistra''</font> |
Versione attuale delle 00:44, 23 set 2022
Per eseguire contemporaneamente un file audio (nell'esempio che segue sarà un file WAV) e un file MIDI mediante la Classe MediaPipeline del Componente gb.media, si dovranno utilizzare i plugin di GStreamer specifici per decodificare entrambi i formati di file.
Private bo As Boolean Public Sub Main() Dim pl As MediaPipeline Dim src, wap, res, con, vol, pan As MediaControl Dim src2, par, flu, res2, con2, vol2, pan2 As MediaControl Dim mix, snk As MediaControl pl = New MediaPipeline As PLine ' Il file audio wav: src = New MediaControl(pl, "filesrc") src["location"] = "/percorso/del/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 ' Il file MIDI: src2 = New MediaControl(pl, "filesrc") src2["location"] = "/percorso/del/file.mid" par = New MediaControl(pl, "midiparse") flu = New MediaControl(pl, "fluiddec") res2 = New MediaControl(pl, "audioresample") con2 = New MediaControl(pl, "audioconvert") vol2 = New MediaControl(pl, "volume") vol2["volume"] = 0.8 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(par) par.LinkTo(flu) flu.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() Repeat Write "\rTempo trascorso: " & Str(Time(0, 0, 0, pl.Position * 1000)) Wait 0.01 Until bo pl.Stop pl.Close Write "\nEsecuzione terminata !" End Public Sub PLIne_End() bo = True End