Jouer Plusieurs sons en même temps dans Android

Je ne suis pas en mesure d'utiliser les éléments suivants à code pour jouer plusieurs sons/bips simultanément. Dans mon onclicklistener j'ai ajouté:

public void onClick(View v) { 
     mSoundManager.playSound(1); 
     mSoundManager.playSound(2); 
} 

Mais ce n'est qu'un seul son à la fois, avec son index 1 suivi par son avec index 2.

Comment puis-je jouer au moins 2 sons simultanément à l'aide de ce code chaque fois qu'il y a un onClick() de l'événement?

public class SoundManager {

private  SoundPool mSoundPool; 
private  HashMap<Integer, Integer> mSoundPoolMap; 
private  AudioManager  mAudioManager;
private  Context mContext;


public SoundManager()
{

}

public void initSounds(Context theContext) { 
     mContext = theContext;
     mSoundPool = new SoundPool(4, AudioManager.STREAM_MUSIC, 0); 
     mSoundPoolMap = new HashMap<Integer, Integer>(); 
     mAudioManager = (AudioManager)mContext.getSystemService(Context.AUDIO_SERVICE);         
} 

public void addSound(int Index,int SoundID)
{
    mSoundPoolMap.put(1, mSoundPool.load(mContext, SoundID, 1));
}

public void playSound(int index) { 

     int streamVolume = mAudioManager.getStreamVolume(AudioManager.STREAM_MUSIC); 
     mSoundPool.play(mSoundPoolMap.get(index), streamVolume, streamVolume, 1, 0, 1f); 
}

public void playLoopedSound(int index) { 

     int streamVolume = mAudioManager.getStreamVolume(AudioManager.STREAM_MUSIC); 
     mSoundPool.play(mSoundPoolMap.get(index), streamVolume, streamVolume, 1, -1, 1f); 
}

}
Je pense que vous êtes le stockage de chaque son avec le même indice dans votre mSoundPoolMap ... mSoundPoolMap.put(1, ...
Salut Romain, Quand je dois utiliser le code ci-dessus, j'ai changer le mSoundPoolMap méthode pour mSoundPoolMap.mettre(index, mSoundPool.charge(mContext, SoundID, 1)); Et lorsque je l'ai utiliser et de jouer les sons que je fais cette finale SoundManager mSoundManager = new SoundManager(); mSoundManager.initSounds(getBaseContext()); mSoundManager.addSound(1, R. raw.1); mSoundManager.addSound(2, R. raw.2); mSoundManager.addSound(3, R. raw.2); ce qui signifie que l'indice 1,2 et 3 go de mSoundPoolMap.put(). Mais même alors, je suis incapable de jouer les sons simultanément. Moyens de les aider.

OriginalL'auteur Wrapper | 2010-04-13