Io personalmente uso la Quartz Dll, che permette di riprodurre anche file mp3.
Public Type sound
Audio As IBasicAudio
MMCtrl As IMediaControl
End Type
'carica il tipo sound definito dall'utente... IBasicAudio permette di eseguire il suono, e IMediaControl permette di modificarne il volume e il bilanciamento delle casse...
suoni(10) as audio
'sono le tue istanze che possono produrre i suoni in contemporaneamente
Public Sub SoundMusic(path As String, index As Integer, volume As Integer)
Set suoni(index).MMCtrl = New QuartzTypeLib.FilgraphManager
suoni(index).MMCtrl.RenderFile path
Set suoni(index).Audio = MMCtrl1(index)
suoni(index).Audio.Balance = 0 ' da -10000 a + 10000
suoni(index).Audio.volume = volume ' da -10000 a 0 in attenuanza di decibel non è lineare
suoni(index).Audio.Run
End Sub
'Spero di non aver fatto errori xkè ho scritto il codice (modificandolo da uno già fatto) al momento... non l'ho conntrollato.
SoundMusic, dato il path (percorso del file), index ossia numero dell "istanza" da eseguire, e volume come volume del suono (si portebbe anchee inserire balance per belanciarlo, volendo).
In tal modo se noi facciamo una cosa di questo tipo, eseguiamo due canzoni contemporaneamente:
SoundMusic("c:\ciccio.mp3",0,0)
SoundMusic("c:\pinco.mp3",1,-100)
l'importante non è caricarle tutte e due sullo stesso iindex.. Chiaro?
ciao