2015-10-03 1 views
0

Bon après-midi!3 audios en même temps avec Android MediaPlayer

Je suis en train de jouer 3 android largeur Audios, mais pas en même temps, mon code est la suivante:

   for (Word w : wordsList){ 
        String path = Parameters.PATH_AUDIO + "/" + w.getAudioPath(); 
        Uri audioPath = Uri.parse(path); 
        MediaPlayer audio1 = MediaPlayer.create(context, audioPath); 
        audio1.start(); 
       } 

Mais tous commencent à jouer Audios au moins en même temps. J'ai besoin de quelque chose comme audio1.wait() ou audio1.sleep ou quelqu'un comme ça.

Merci.

Répondre

0

Vous voudrez peut-être envisager d'utiliser setOnCompletionListener:

audio1.setOnCompletionListener(new MediaPlayer.OnCompletionListener(){ 
public void onCompletion(MediaPlayer player) { 

     //do something when audio is finished 

}}); 

Voici un exemple (n'a pas eu la chance de l'essayer si):

Decalre ceux-ci dans le niveau de la classe:

int index = 0; 
MediaPlayer audio1; 

puis:

try { 
     audio1 = MediaPlayer.create(this, Uri.parse(yourList.get(index))); 
     audio1.start(); 
     index++; 

     audio1.setOnCompletionListener(new MediaPlayer.OnCompletionListener() { 
      public void onCompletion(MediaPlayer player) { 

       if (index < yourList.size()) { 
        audio1.reset(); 
        audio1 = MediaPlayer.create(MainActivity.this, 
          Uri.parse(yourList.get(index))); 
        audio1.start(); 
        index++; 
       } 
       else 
       { 
        //release it 
       } 

      } 
     }); 

    } catch (IllegalArgumentException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } catch (SecurityException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } catch (IllegalStateException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 
+0

J'utilise onCompletion mais je ne sais pas ce que je dois mettre dans vos lignes de commentaires, je n'ai rien à faire, attendez environ 2 secondes entre chaque audio. – Argon

+0

Il vous suffit de lire l'audio suivant lorsque le précédent est terminé. –

+0

Si vous souhaitez simplement attendre 2 secondes, vous pouvez utiliser un gestionnaire avec postDelayed. –