2010-12-03 5 views
7

J'ai essayé d'obtenir quelques sons en même temps; Actuellement, j'utilise une instance partagée de SoundPool. Je voudrais que 1, 2 ou 3 sons soient joués exactement au même moment sans décalage. Lorsque vous appelez SoundPool.play (...) X fois de suite, les sons sont lus dans cet ordre, comme on pourrait le penser. quel est le bon quoi faire pour que je puisse préparer tous les sons à jouer en même temps et les jouer en même temps?Comment synchroniser les sons avec SoundPool

Code de Sudo:

SoundPool _soundPool = new SoundPool(10, AudioManager.STREAM_MUSIC, 0); 

_soundPool.load(_context, soundId1, 1); 
_soundPool.load(_context, soundId2, 1); 
_soundPool.load(_context, soundId3, 1); 

_soundPool.play(soundId1, vol, vol, 1, 0, 1f); 
_soundPool.play(soundId2, vol, vol, 1, 0, 1f); 
_soundPool.play(soundId3, vol, vol, 1, 0, 1f); 
+1

Merci connexes: http://stackoverflow.com/q/4350212/116249 – Patrick

+0

@Patrick, j'ai essayé l'approche filetée et au début, je pensais qu'il a travaillé, ou au moins assez près lorsque vous juste avoir deux fils. mais quand vous prenez la même idée et l'agrandissez pour dire 4 fils faisant tous la même chose alors vous êtes de retour avec le moindre retard. peut-être que la prochaine étape est de plonger dans le mixage des sons ... je ne voulais pas vraiment aller aussi loin, mais à ce stade, je ne vois pas beaucoup d'autres options. – YetAnotherDeveloper

+1

Je pense que le mixage sonore est la meilleure approche. Avez-vous essayé sur un téléphone et pas seulement sur un émulateur comme james déclaré dans l'autre thread? Si vous connaissez les sons que vous voulez jouer en tant que mix, vous pouvez les configurer au début du cycle de vie de vos applications, de cette façon vous n'avez pas besoin de les mélanger lorsque vous voulez jouer les sons, ce qui vous donnera une meilleure couler. – Patrick

Répondre

Questions connexes