【问题标题】:Android Media player OncompletionListener Play Next song but not the second songAndroid 媒体播放器 OncompletionListener 播放下一首歌曲但不播放第二首歌曲
【发布时间】:2017-02-20 03:52:12
【问题描述】:

我有一个带有音乐播放器的应用程序,我正在使用 @override 方法 OnCompletionListener 在音乐完成时收听并传递到下一首歌曲,下面的代码有效,但在第二首歌曲完成时 OncompletionListener 没有调用又和音乐结束时停止,如何继续转到下一首歌?

OnCompletionListener

mediaPlayer.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
                          @Override
                          public void onCompletion(MediaPlayer mp) {
                              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();
            }
        });

【问题讨论】:

  • 无法回答您的问题。你说的第二首歌是什么意思?
  • 我有一个播放列表,我播放一首歌曲,当歌曲完成时 onCompletionListener 被调用并且播放列表的下一首歌曲开始,但是当这首歌曲完成时不会继续传递到下一首歌曲。我认为 Oncompletion 监听器不会再次调用。

标签: java android eclipse android-mediaplayer android-studio-2.2


【解决方案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();
                }
            });

        }
    }

【讨论】:

  • 是的,伙计!非常感谢,您的代码运行良好! :D
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多