无法让Mediaplayer停下来

时间:2011-04-09 16:00:30

标签: java android media-player ontouchevent

我试图让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);



    }

1 个答案:

答案 0 :(得分:1)

每次调用onTouch时都会创建mp = MediaPlayer.create(getBaseContext(), R.raw.tara);,因此您之前没有使用以前用于开始播放的mp实例。

检查onTouch开头的mp是否为null,如果不为null,则不要创建新的,而是停止当前。