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 1: Riga 1:
 
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''.
 
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''.
<BR>I due file audio devono avere la medesima frequenza di campionamento !
+
 
 +
I due file audio utilizzati devono avere la medesima frequenza di campionamento !
 
  '''Public''' Sub Main()
 
  '''Public''' Sub Main()
 
    
 
    

Versione delle 15:17, 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 utilizzati 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