我试图让Android媒体播放器在这个onTouch方法中停止播放声音,但它不会。相反,它开始声音作为最后一个的补充,所以我可以听到它们重叠。如果我循环,循环将不会停止。即使我不使用isPlaying部分但插入并检查布尔值它也不起作用。有什么建议吗?
public boolean onTouch(View v, MotionEvent event){
mp = MediaPlayer.create(getBaseContext(), R.raw.tara);
if (event.getAction() == MotionEvent.ACTION_DOWN){
Drawable myIcon = getResources().getDrawable( R.drawable.image1);
getWindow().setBackgroundDrawable(myIcon);
if (mp.isPlaying()){
mp.stop();
}
else {
mp.start();
}
}
else if (event.getAction() == MotionEvent.ACTION_UP){
Drawable myIconup = getResources().getDrawable( R.drawable.image2);
getWindow().setBackgroundDrawable(myIconup);
}
答案 0 :(得分:1)
每次调用onTouch时都会创建mp = MediaPlayer.create(getBaseContext(), R.raw.tara);
,因此您之前没有使用以前用于开始播放的mp实例。
检查onTouch开头的mp是否为null,如果不为null,则不要创建新的,而是停止当前。