如何播放阵列中的下一首歌?

时间:2017-05-05 14:20:00

标签: java android arrays media-player

对于作业,我正在尝试使用媒体播放器播放阵列中的歌曲。数组中的第一首歌可以正常播放,但是下一首和最后一首曲目按钮是我的问题所在。有人可以建议一种从我的音乐阵列播放下一首/最后一首歌的方法吗?

没有包含相关代码。

// Arrays of sound files
private int[] audioFileArrayChill = {R.raw.vanilla_summer, R.raw.lifeline, R.raw.remember_the_mountain_bed};`

// Listen for the end of the track
    mediaPlayer.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
        @Override
        public void onCompletion(MediaPlayer mp) {
            for (int x = 1; x <= audioArray.length; x++) {
                currentIndex++;
                // Play next song in array
                mp.selectTrack(audioArray[x]);
                mp.start();

            }

        }
    });


 // Assigning onClickListener to last track button
    lastTrack.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            mediaPlayer.reset();
            mediaPlayer.selectTrack(audioArray[currentIndex - 1]);
            try {
                mediaPlayer.prepare();
                mediaPlayer.start();
            } catch (IOException e) {
                Log.e("Error", "ERROR");

            }

        }
    });


// Assigning onClickListener to next track button
    nextTrack.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            mediaPlayer.reset();
            mediaPlayer.selectTrack(audioArray[currentIndex + 1]);
            try {
                mediaPlayer.prepare();
                mediaPlayer.start();
            } catch (IOException e) {
                Log.e("Error", "ERROR");

            }


        }
    });

1 个答案:

答案 0 :(得分:0)

  

使用下面的代码点击下一步按钮

  nextTrack.setOnClickListener(new View.OnClickListener() {
   @Override
   public void onClick(View v) {
      mp.stop();
      mp.reset();
      mp.setDataSource(audioArray[currentIndex + 1]);
      mp.prepare();              
      mp.start();
   }