简体   繁体   中英

How to play the next song in an array?

For an assignment I am trying to play songs from an array using media player. The first song in the array plays fine, but the next, and last track buttons are where my issue is. Could anyone suggest a way of playing the next/last song from my music array?

None relevant code not included.

// 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");

            }


        }
    });

use below code for next button click

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

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM