我正在尝试制作一个带有播放,暂停和停止按钮的简单媒体播放器。播放和停止按钮工作正常。但是,暂停按钮的行为类似于停止按钮。当我在暂停后点击播放按钮时,它从头开始。
Button one = (Button) findViewById(R.id.mediaButton);
Button two = (Button) findViewById(R.id.mediaButton2);
Button three = (Button) findViewById(R.id.mediaButton3);
final MediaPlayer mp = new MediaPlayer();
one.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
if (mp.isPlaying()) {
return;
}
try {
mp.reset();
AssetFileDescriptor afd;
afd = getAssets().openFd("Urge_Surfing.mp3");
mp.setDataSource(afd.getFileDescriptor(), afd.getStartOffset(), afd.getLength());
mp.prepare();
mp.setLooping(false);
mp.start();
} catch (IllegalStateException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
});
two.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
if (mp.isPlaying()) {
mp.pause();
} else {
return;
}
}
});
three.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
if (mp.isPlaying()) {
mp.stop();
mp.reset();
} else {
return;
}
}
});
答案 0 :(得分:0)
我认为问题是reset()
电话
根据{{3}},start()
是从同一地点恢复所需的唯一电话
尝试跟踪您的状态,如果您处于PAUSED
州,请仅拨打start()
以继续
我已经使用这个小state machine来跟踪MediaPlayer的当前状态。