【问题标题】:how to play all mp3 files from raw folder if first is complete then second will be start如果第一个完成然后第二个将开始,如何从原始文件夹播放所有 mp3 文件
【发布时间】:2020-08-31 15:24:31
【问题描述】:

我想在用户单击暂停按钮的情况下连续播放原始文件夹中的所有 mp3 文件。有什么方法可以循环播放所有文件并播放第一,第二,第三等等,直到用户暂停它。

变量

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

原始文件夹中的音频文件

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 };

点击按钮播放所有 mp3 文件

是否有任何方法可以循环播放所有文件并播放第一,第二,第三等等,直到用户暂停它。请有人告诉我哪种方法或逻辑可以应用来播放原始文件夹中的所有音频连续播放仍然用户单击暂停

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);
                }
            }
        }
    });

【问题讨论】:

    标签: java android-studio android-mediaplayer media-player


    【解决方案1】:

    我找到了在继续循环中播放所有 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;
                }
    
            }
        });
    }
    

    这是完整的代码,可以循环播放歌曲

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多