如何解决如何播放原始文件夹中的所有mp3文件,如果第一个完成则第二个将开始
我想连续播放原始文件夹中的所有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);
}
}
}
});
解决方法
我找到了在继续循环中播放所有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.getLength());
afd.close();
mp.prepare();
mp.start();
}
} catch (Exception ex) {
ex.printStackTrace();
}
} else {
mCompleted = 0;
mp.release();
mp = null;
}
}
});
}
这是完整的代码,您可以连续循环播放歌曲
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。