简体   繁体   中英

how to play all mp3 files from raw folder if first is complete then second will be start

I want to play all mp3 files from raw folder continuously still the user click pause button. Is there any method to loop the all file and play first, second, third and so on till user pauses it.

Variable

ImageView playBtn;
private MediaPlayer mediaPlayer;
public static int[] SoundIndex;
public static int position = 0;

Audio file from raw folder

SoundIndex = new int[] {
            R.raw.r0, R.raw.r1, R.raw.r2, R.raw.r3, R.raw.r4, R.raw.r5, R.raw.r6, R.raw.r7, R.raw.r8, R.raw.r9,
            R.raw.r10, R.raw.r11, R.raw.r12, R.raw.r13, R.raw.r14, R.raw.r15, R.raw.r16, R.raw.r17, R.raw.r18, R.raw.r19,
            R.raw.r20, R.raw.r21, R.raw.r22, R.raw.r23, R.raw.r24, R.raw.r25, R.raw.r26, R.raw.r27, R.raw.r28, R.raw.r29,
            R.raw.r30, R.raw.r31, R.raw.r32, R.raw.r33, R.raw.r34, R.raw.r35, R.raw.r36, R.raw.r37, R.raw.r38, R.raw.r39,
            R.raw.r40, R.raw.r41, R.raw.r42, R.raw.r43, R.raw.r44, R.raw.r45, R.raw.r46, R.raw.r47, R.raw.r48, R.raw.r49,
            R.raw.r50, R.raw.r51, R.raw.r52, R.raw.r53, R.raw.r54, R.raw.r55, R.raw.r56, R.raw.r57, R.raw.r58, R.raw.r59,
            R.raw.r60, R.raw.r61, R.raw.r62, R.raw.r63, R.raw.r64, R.raw.r65, R.raw.r66, R.raw.r67, R.raw.r68, R.raw.r69,
            R.raw.r70, R.raw.r71, R.raw.r72, R.raw.r73, R.raw.r74, R.raw.r75, R.raw.r76, R.raw.r77, R.raw.r78, R.raw.r79,
            R.raw.r80, R.raw.r81, R.raw.r82, R.raw.r83 };

Play all mp3 files on button click

Is there any method to loop the all file and play first, second, third and so on till user pauses it. Please someone tell me which method or logic can apply to play all audio from raw folder continuously play still the user click pause

playBtn = findViewById(R.id.playBtn);

    playBtn.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            if (mediaPlayer == null) {
                mediaPlayer = MediaPlayer.create(getApplicationContext(), SoundIndex[position]);
                playBtn.setBackgroundResource(R.drawable.pause);
                mediaPlayer.start();
            } else {
                if (mediaPlayer.isPlaying()) {
                    playBtn.setBackgroundResource(R.drawable.play);
                    mediaPlayer.pause();
                } else {
                    mediaPlayer.start();
                    playBtn.setBackgroundResource(R.drawable.pause);
                }
            }
        }
    });

I found the solution for for playing all mp3 files in continue loop

public class AutoActivity extends AppCompatActivity {

ImageView playBtn;

private int[] soundIndex = {
        R.raw.r0, R.raw.r1, R.raw.r2, R.raw.r3, R.raw.r4, R.raw.r5, R.raw.r6, R.raw.r7, R.raw.r8, R.raw.r9,
        R.raw.r10, R.raw.r11, R.raw.r12, R.raw.r13, R.raw.r14, R.raw.r15, R.raw.r16, R.raw.r17, R.raw.r18, R.raw.r19,
        R.raw.r20, R.raw.r21, R.raw.r22, R.raw.r23, R.raw.r24, R.raw.r25, R.raw.r26, R.raw.r27, R.raw.r28, R.raw.r29,
        R.raw.r30, R.raw.r31, R.raw.r32, R.raw.r33, R.raw.r34, R.raw.r35, R.raw.r36, R.raw.r37, R.raw.r38, R.raw.r39,
        R.raw.r40, R.raw.r41, R.raw.r42, R.raw.r43, R.raw.r44, R.raw.r45, R.raw.r46, R.raw.r47, R.raw.r48, R.raw.r49,
        R.raw.r50, R.raw.r51, R.raw.r52, R.raw.r53, R.raw.r54, R.raw.r55, R.raw.r56, R.raw.r57, R.raw.r58, R.raw.r59,
        R.raw.r60, R.raw.r61, R.raw.r62, R.raw.r63, R.raw.r64, R.raw.r65, R.raw.r66, R.raw.r67, R.raw.r68, R.raw.r69,
        R.raw.r70, R.raw.r71, R.raw.r72, R.raw.r73, R.raw.r74, R.raw.r75, R.raw.r76, R.raw.r77, R.raw.r78, R.raw.r79,
        R.raw.r80, R.raw.r81, R.raw.r82, R.raw.r83};
int mCompleted = 0;


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_auto);

    final MediaPlayer mediaPlayer = MediaPlayer.create(this, soundIndex[0]);


    //Play button initialize
    playBtn = findViewById(R.id.playBtn);

    playBtn.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            if (mediaPlayer.isPlaying()){
                mediaPlayer.pause();
                playBtn.setImageResource(R.drawable.play);
            }else {
                mediaPlayer.start();
                playBtn.setImageResource(R.drawable.pause);
            }
        }
    });
    mediaPlayer.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
        @Override
        public void onCompletion(MediaPlayer mp) {
            mCompleted++;
            mp.reset();
            if (mCompleted < soundIndex.length) {
                try {
                    AssetFileDescriptor afd = getResources().openRawResourceFd(soundIndex[mCompleted]);
                    if (afd != null) {
                        mp.setDataSource(afd.getFileDescriptor(), afd.getStartOffset(), afd.getLength());
                        afd.close();
                        mp.prepare();
                        mp.start();
                    }
                } catch (Exception ex) {
                    ex.printStackTrace();
                }

            } else if (mCompleted >= soundIndex.length) {
                mCompleted = 0;
                try {
                    AssetFileDescriptor afd = getResources().openRawResourceFd(soundIndex[mCompleted]);
                    if (afd != null) {
                        mp.setDataSource(afd.getFileDescriptor(), afd.getStartOffset(), afd.getLength());
                        afd.close();
                        mp.prepare();
                        mp.start();
                    }
                } catch (Exception ex) {
                    ex.printStackTrace();
                }
            } else {
                mCompleted = 0;
                mp.release();
                mp = null;
            }

        }
    });
}

This is complete code which you can play songs continuously in loop

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