我需要一些关于下面代码的建议。我正在尝试创建一个简单的应用程序,当人们点击播放按钮时,音乐将开始播放,当人们点击停止按钮时,音乐将停止播放。我正在使用一个按钮来启动和停止这两个任务。
我已经在Android模拟器上测试了,这个启动和停止按钮正常工作,如我所愿。但是当我构建一个APK文件并在设备上播放时,问题就出现了。停止按钮无法正常工作。如果我按下停止按钮,音乐将从头开始重新开始播放。
有关此问题的任何想法?谢谢。
btn_playstop.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (btn_playstop.isPressed()) {
if (player.isPlaying()) {
player.stop();
try {
player.prepare();
} catch (IllegalStateException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
player.seekTo(0);
btn_playstop.setBackgroundResource(R.drawable.play);
}
else {
player.start();
btn_playstop.setBackgroundResource(R.drawable.stop);
}
}
}
});
答案 0 :(得分:0)
要实现播放/停止按钮,请执行此操作。
btn_playstop.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (player != null && player.isPlaying()) {
player.stop();
player.release();
player = null;
try {
player.prepare();
} catch (IllegalStateException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
player.seekTo(0); //<---- This is to resume the player from a specified position. It is helpful for a pause button. You can remove it for a stop button.
btn_playstop.setBackgroundResource(R.drawable.play);
}
else {
player.start();
btn_playstop.setBackgroundResource(R.drawable.stop);
}
}
});
您不必调用seekTo(Length)
方法停止按钮,因为它意味着从指定位置恢复播放器。另外if (btn_playstop.isPressed())
也是不必要的,因为您已使用setOnClickListener
调用了按钮。