[英]how to play all mp3 files from raw folder if first is complete then second will be start
我想連續播放原始文件夾中的所有 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.getStartOffset(), afd.getLength());
afd.close();
mp.prepare();
mp.start();
}
} catch (Exception ex) {
ex.printStackTrace();
}
} else {
mCompleted = 0;
mp.release();
mp = null;
}
}
});
}
這是完整的代碼,您可以循環播放歌曲
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.