简体   繁体   English

如果第一个完成然后第二个将开始,如何播放原始文件夹中的所有 mp3 文件

[英]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.我想连续播放原始文件夹中的所有 mp3 文件,但用户仍单击暂停按钮。 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单击按钮播放所有 mp3 文件

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我找到了在继续循环中播放所有 mp3 文件的解决方案

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这是完整的代码,您可以循环播放歌曲

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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