Java 在Android上,是否知道如何使用setOnCompletionListener播放下一个项目
我试图开发mediaplayer应用程序,我使用listview显示和播放歌曲, 我无法使用setOnCompletionListener自动播放下一个声音项 我的代码:Java 在Android上,是否知道如何使用setOnCompletionListener播放下一个项目,java,android,Java,Android,我试图开发mediaplayer应用程序,我使用listview显示和播放歌曲, 我无法使用setOnCompletionListener自动播放下一个声音项 我的代码: list.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view,
list.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view,
final int position, long id) {
mButtonPause.setEnabled(true);
mButtonResume.setEnabled(false);
if (position == 0){
sound.setAudioStreamType(AudioManager.STREAM_MUSIC);
String audioUrl1 = "https://embeye.tech/ummi/speaker/0001.mp3";
try {
halaman.setText("Doa Pembuka");
playSound(audioUrl1);
Toast.makeText(mContext,"Playing",Toast.LENGTH_SHORT).show();
mButtonNext.setEnabled(true);
mButtonPrev.setEnabled(false);
initializeSeekBar();
} catch (IllegalArgumentException e){
e.printStackTrace();
}catch (SecurityException e){
e.printStackTrace();
}catch (IllegalStateException e){
e.printStackTrace();
}
}
else if (position == 1) {
sound.setAudioStreamType(AudioManager.STREAM_MUSIC);
String audioUrl1 = "https://embeye.tech/ummi/speaker/jilidsatu/0101.mp3";
try {
halaman.setText("Halaman Satu");
playSound(audioUrl1);
Toast.makeText(mContext,"Playing",Toast.LENGTH_SHORT).show();
initializeSeekBar();
mButtonNext.setEnabled(true);
mButtonPrev.setEnabled(true);
}catch (IllegalArgumentException e){
e.printStackTrace();
}catch (SecurityException e){
e.printStackTrace();
}catch (IllegalStateException e){
e.printStackTrace();
}
}
else if (position == 2){
sound.setAudioStreamType(AudioManager.STREAM_MUSIC);
String audioUrl1 = "https://embeye.tech/ummi/speaker/jilidsatu/0102.mp3";
try {
halaman.setText("Halaman Dua");
playSound(audioUrl1);
Toast.makeText(mContext,"Playing",Toast.LENGTH_SHORT).show();
initializeSeekBar();
mButtonNext.setEnabled(true);
mButtonPrev.setEnabled(true);
}catch (IllegalArgumentException e){
e.printStackTrace();
}catch (SecurityException e){
e.printStackTrace();
}catch (IllegalStateException e){
e.printStackTrace();
}
}
else if (position == 3){
sound.setAudioStreamType(AudioManager.STREAM_MUSIC);
String audioUrl1 = "https://embeye.tech/ummi/speaker/jilidsatu/0103.mp3";
try {
halaman.setText("Halaman Tiga");
playSound(audioUrl1);
Toast.makeText(mContext,"Playing",Toast.LENGTH_SHORT).show();
initializeSeekBar();
mButtonNext.setEnabled(true);
mButtonPrev.setEnabled(true);
}catch (IllegalArgumentException e){
e.printStackTrace();
}catch (SecurityException e){
e.printStackTrace();
}catch (IllegalStateException e){
e.printStackTrace();
}
}
sound.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
@Override
public void onCompletion(MediaPlayer mediaPlayer) {
Toast.makeText(mContext,"End",Toast.LENGTH_SHORT).show();
mButtonResume.setEnabled(true);
sound.isPlaying();
sound.reset();
songNumber = String.valueOf(position + 1);
sound.setAudioStreamType(AudioManager.STREAM_MUSIC);
String audioUrl1 = songNumber;
playSound(audioUrl1);
}
});
}
});
实际上我想做的是,我想在当前歌曲完成后播放下一首歌曲,根据我上面的代码,我想在position==0 complete时激活position==1;这意味着songNumber将是2,而当您将AudioURL设置为2时
我建议您创建一个AudioURL数组,然后设置songNumber=AudioURL
如果这对你没有帮助,你可以发布完整的stacktrace,这样我们就可以看到实际的错误。hi@isaaaame谢谢你的评论,这里有点混乱,实际上我想做的是,我想在当前歌曲完成后播放下一首歌曲,基于我上面的代码,我想在position==0完成时激活position==1
sound.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
@Override
public void onCompletion(MediaPlayer mediaPlayer) {
Toast.makeText(mContext,"End",Toast.LENGTH_SHORT).show();
mButtonResume.setEnabled(true);
sound.isPlaying();
sound.reset();
songNumber = String.valueOf(position + 1);
sound.setAudioStreamType(AudioManager.STREAM_MUSIC);
String audioUrl1 = songNumber;
playSound(audioUrl1);
}
});