Не удается остановить медиаплеер - PullRequest
0 голосов
/ 09 апреля 2011

Я пытаюсь заставить проигрыватель 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 Ответ

1 голос
/ 09 апреля 2011

Вы создаете mp = MediaPlayer.create(getBaseContext(), R.raw.tara); каждый раз, когда вызывается onTouch, поэтому вы не используете экземпляр mp, который вы использовали для запуска воспроизведения ранее.

Проверьте, является ли mp нулевым в начале onTouch, и если не нулевым, не создавайте новый, но остановите текущий.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...