0

У меня есть приложение с музыкальным проигрывателем, я использую метод @override OnCompletionListener, чтобы слушать, когда музыка завершена, и перейти к следующей песне, следующий код работает , но во второй песне, когда заканчивается OncompletionListener, не звонит снова, и музыка останавливается, когда заканчивается, как переходить к следующей песне постоянно?Android Media Player OncompletionListener Play Следующая песня, но не вторая песня

OnCompletionListener

mediaPlayer.setOnCompletionListener(new MediaPlayer.OnCompletionListener() { 
          @Override 
          public void onCompletion(MediaPlayer mp) { 
           NextSong(); 
          } 
         }); 

NextSongМетод

public void NextSong(){ 

    num = posicion++; 

    if (MainActivity.num <= MainActivity.listaArray.size() - 2) { 

     mediaPlayer.reset(); 
     uri = Uri.parse(String.valueOf(archivosMp3[num + 1])); 
     mmr.setDataSource(String.valueOf(archivosMp3[num + 1])); 

     mediaPlayer = mediaPlayer.create(Servicio_Reproductor.this, MainActivity.uri); 
     mediaPlayer.setOnPreparedListener(new MediaPlayer.OnPreparedListener() { 
      @Override 
      public void onPrepared(MediaPlayer mp) { 

       mediaPlayer.start(); 
      } 
     }); 
+0

не в состоянии получить ваш вопрос. Что вы подразумеваете под второй песней? –

+0

У меня есть плейлист, я играю песню, когда песня заканчивается onCompletionListener и следующая песня начинается с Playlist, но когда эта песня заканчивается, она не переходит к следующей песне. Я думаю, что слушатель Oncompletion больше не звонит. –

ответ

1

Попробуйте это,

public class MediaplayerActivity extends Activity implements OnCompletionListener 
    { 

     @Override 
     protected void onCreate(Bundle savedInstanceState) { 

     mMediaPlayer.setOnCompletionListener(this); 
     } 

     @Override 
     public void onCompletion(MediaPlayer mp) { 

     . 
     . 
     . 
     mediaPlayer = mediaPlayer.create(Servicio_Reproductor.this, MainActivity.uri); 
      mediaPlayer.setOnPreparedListener(new MediaPlayer.OnPreparedListener() { 
       @Override 
       public void onPrepared(MediaPlayer mp) { 
        mMediaPlayer.setOnCompletionListener(this); 
        mediaPlayer.start(); 
       } 
      }); 

     } 
    } 
+0

Да, чувак! Большое спасибо, ваш код работает отлично! : D –

Смежные вопросы