如何使用Media Player android改组列表歌曲

时间:2017-05-23 06:07:12

标签: android loops media-player shuffle

我已经在媒体播放器中播放了一系列歌曲,但是不正确的工作请帮忙:

public void playSongWithIndex(final int songIndex) {
    progressBar.setVisibility(View.VISIBLE);
    if (music_exist.exists()) {
      playMusicOfflineMode();
    } else {
      Log.e("TAG", "playSongWithIndex: "+songList.get(songIndex).getFile_128() );
      try {
        G.mediaPlayer.reset();
        G.mediaPlayer.setDataSource(songList.get(songIndex).getFile_128());
        G.mediaPlayer.prepareAsync();
        G.mediaPlayer.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
          @Override
          public void onPrepared(MediaPlayer mediaPlayer) {
            runOnUiThread(new Runnable() {
              @Override
              public void run() {
                setAdapterLyric(songManager.showTextInRecyclerView(songList.get(songIndex).getLyric()));

              }
            });
            G.mediaPlayer.start();
            music_name_text.setText(songList.get(songIndex).getEn_name());
            singer_name_text.setText(songList.get(songIndex).getSinger_name_en());
            comment_count_text.setText(songList.get(songIndex).getComment_count() + "");
            like_count_text.setText(songList.get(songIndex).getLike_count() + "");
            play_music_img.setImageResource(R.drawable.ic_pause_black_24dp);
            seekBar.setMax(G.mediaPlayer.getDuration());
            progressBar.setVisibility(View.INVISIBLE);
            play_music_img.setEnabled(true);
            timer = new Timer();
            timer.schedule(new MainTimer(), 0, 1000);

          }
        });
      } catch (IllegalArgumentException | IllegalStateException | IOException e) {
        e.printStackTrace();
      }
    }
  }

播放歌曲的方法:

E/TAG: playSongWithIndex: http://cdn.oneremind.com/up/song/Modern_Talking/Let's_Talk_About_Love/04_Let's_Talk_About_Love.mp3
E/TAG: playSongWithIndex: http://cdn.oneremind.com/up/song/Modern_Talking/Let's_Talk_About_Love/03_Don't_Give_Up.mp3
E/TAG: playSongWithIndex: http://cdn.oneremind.com/up/song/Modern_Talking/Let's_Talk_About_Love/04_Let's_Talk_About_Love.mp3
E/TAG: playSongWithIndex: http://cdn.oneremind.com/up/song/Modern_Talking/Let's_Talk_About_Love/03_Don't_Give_Up.mp3
E/TAG: playSongWithIndex: http://cdn.oneremind.com/up/song/Modern_Talking/Let's_Talk_About_Love/04_Let's_Talk_About_Love.mp3
E/TAG: playSongWithIndex: http://cdn.oneremind.com/up/song/Modern_Talking/Let's_Talk_About_Love/01_Cheri_Cheril_Lady.mp3
E/TAG: playSongWithIndex: http://cdn.oneremind.com/up/song/Modern_Talking/Let's_Talk_About_Love/01_Cheri_Cheril_Lady.mp3
E/TAG: playSongWithIndex: http://cdn.oneremind.com/up/song/Modern_Talking/Let's_Talk_About_Love/02_With_A_Little_Love.mp3
E/TAG: playSongWithIndex: http://cdn.oneremind.com/up/song/Modern_Talking/Let's_Talk_About_Love/03_Don't_Give_Up.mp3
E/TAG: playSongWithIndex: http://cdn.oneremind.com/up/song/Modern_Talking/Let's_Talk_About_Love/02_With_A_Little_Love.mp3
E/TAG: playSongWithIndex: http://cdn.oneremind.com/up/song/Modern_Talking/Let's_Talk_About_Love/03_Don't_Give_Up.mp3
E/TAG: playSongWithIndex: http://cdn.oneremind.com/up/song/Modern_Talking/Let's_Talk_About_Love/02_With_A_Little_Love.mp3
E/TAG: playSongWithIndex: http://cdn.oneremind.com/up/song/Modern_Talking/Let's_Talk_About_Love/02_With_A_Little_Love.mp3
E/TAG: playSongWithIndex: http://cdn.oneremind.com/up/song/Modern_Talking/Let's_Talk_About_Love/02_With_A_Little_Love.mp3
E/TAG: playSongWithIndex: http://cdn.oneremind.com/up/song/Modern_Talking/Let's_Talk_About_Love/03_Don't_Give_Up.mp3
E/TAG: playSongWithIndex: http://cdn.oneremind.com/up/song/Modern_Talking/Let's_Talk_About_Love/03_Don't_Give_Up.mp3
E/TAG: playSongWithIndex: http://cdn.oneremind.com/up/song/Modern_Talking/Let's_Talk_About_Love/01_Cheri_Cheril_Lady.mp3
E/TAG: playSongWithIndex: http://cdn.oneremind.com/up/song/Modern_Talking/Let's_Talk_About_Love/01_Cheri_Cheril_Lady.mp3
E/TAG: playSongWithIndex: http://cdn.oneremind.com/up/song/Modern_Talking/Let's_Talk_About_Love/04_Let's_Talk_About_Love.mp3
E/TAG: playSongWithIndex: http://cdn.oneremind.com/up/song/Modern_Talking/Let's_Talk_About_Love/01_Cheri_Cheril_Lady.mp3
E/TAG: playSongWithIndex: http://cdn.oneremind.com/up/song/Modern_Talking/Let's_Talk_About_Love/04_Let's_Talk_About_Love.mp3
E/TAG: playSongWithIndex: http://cdn.oneremind.com/up/song/Modern_Talking/Let's_Talk_About_Love/01_Cheri_Cheril_Lady.mp3
E/TAG: playSongWithIndex: http://cdn.oneremind.com/up/song/Modern_Talking/Let's_Talk_About_Love/02_With_A_Little_Love.mp3
E/TAG: playSongWithIndex: http://cdn.oneremind.com/up/song/Modern_Talking/Let's_Talk_About_Love/03_Don't_Give_Up.mp3
E/TAG: playSongWithIndex: http://cdn.oneremind.com/up/song/Modern_Talking/Let's_Talk_About_Love/01_Cheri_Cheril_Lady.mp3
E/TAG: playSongWithIndex: http://cdn.oneremind.com/up/song/Modern_Talking/Let's_Talk_About_Love/02_With_A_Little_Love.mp3
E/TAG: playSongWithIndex: http://cdn.oneremind.com/up/song/Modern_Talking/Let's_Talk_About_Love/01_Cheri_Cheril_Lady.mp3
E/TAG: playSongWithIndex: http://cdn.oneremind.com/up/song/Modern_Talking/Let's_Talk_About_Love/02_With_A_Little_Love.mp3
E/TAG: playSongWithIndex: http://cdn.oneremind.com/up/song/Modern_Talking/Let's_Talk_About_Love/03_Don't_Give_Up.mp3
E/TAG: playSongWithIndex: http://cdn.oneremind.com/up/song/Modern_Talking/Let's_Talk_About_Love/04_Let's_Talk_About_Love.mp3

我面对这个日志:

12452
9893
42356
...

并且媒体播放器陷入循环,dos不能正常工作在哪里?

2 个答案:

答案 0 :(得分:2)

使用集合shullfe:

long seed = System.nanoTime();
Collections.shuffle(songList, new Random(seed));

答案 1 :(得分:1)

为什么不用这种方式创建媒体播放器?

 G.mediaPlayer = MediaPlayer.create(this,Uri.parse("YourFilePath");//this is a context
 //Then start it without preparation.
 G.mediaPlayer.start();