2017-07-14 1 views
0

Je développe une application Music Player, dans mon application Je veux lire tous les fichiers mp3 en un seul clic. J'ai été capable de le faire avec MediaPlayer, mais incapable de mettre en pause toutes les chansons en utilisant le bouton Pause. Comment puis-je mettre en pause toutes les chansons qui jouent à la foisLire et mettre en pause plusieurs fichiers audio en même temps

bouton Lecture

for (int i = 0; i < InstrumentCountSize; i++) { 
     mp = new MediaPlayer(); 
     mp.setAudioStreamType(AudioManager.STREAM_MUSIC); 
     mp.setDataSource(instruments_count.get(i)); 
     mp.prepare(); 
     mp.start(); 

    } 

bouton Pause

if (mp != null) { 
     try { 
      mp.stop(); 
      mp.reset(); 
      mp.release(); 
      mp = null; 
     } catch (Exception e) { 
      e.printStackTrace(); 
     } 
    } 

Répondre

1

Votre seule variable mp ne peut faire référence à un seul MediaPlayer, de sorte que votre bouton Pause code essaie seulement de libérer le dernièreMediaPlayer instance que vous cr pris. Vous devez conserver des références à toutes les instances MediaPlayer.

[MISE À JOUR]

Quelque chose comme cela devrait fonctionner mieux:

// This needs to replace your "mp" variable. 
List<MediaPlayer> mps = new ArrayList<MediaPlayer>(); 


// Play button code .... 
// Make sure all the media are prepared before playing 
for (int i = 0; i < InstrumentCountSize; i++) { 
    MediaPlayer mp = new MediaPlayer(); 
    mp.setAudioStreamType(AudioManager.STREAM_MUSIC); 
    mp.setDataSource(instruments_count.get(i)); 
    mp.prepare(); 
    mps.add(mp); 
} 
// Now that all the media are prepared, start playing them. 
// This should allow them to start playing at (approximately) the same time. 
for (MediaPlayer mp: mps) { 
    mp.start(); 
} 


// Pause button code ... 
for (MediaPlayer mp: mps) { 
    try { 
     mp.stop(); 
     mp.reset(); 
     mp.release(); 
    } catch (Exception e) { 
     e.printStackTrace(); 
    } 
} 
mps.clear(); 
+0

Merci, beaucoup, il fonctionne très bien, mais il n'y a qu'un seul problème que deuxième lecture audio après 2 ou 3 secondes –

+0

J'ai mis à jour ma réponse afin qu'il s'assure que tous les médias sont préparés avant de commencer à les jouer. – cybersam

+0

Merci, maintenant toutes les chansons jouent simultanément et le bouton de pause fonctionne également –