2013-02-20 2 views
0

Я пытаюсь реализовать воспроизведение/паузу в одной кнопке, однако, когда я пытаюсь нажать ее снова, она просто запустит песню, снова накладывающуюся на звук. У меня есть способы поиска и пробовал этот метод, и, похоже, он не работает для меня. thank youPlay Pause single button

private OnClickListener handler1 = new OnClickListener(){ 
    public void onClick(View v){ 
    MediaPlayer mpE = MediaPlayer.create(GuitarTuner.this, R.raw.test2); 

     if (mpE.isPlaying()) { 
      mpE.pause(); 
     } else { 
      mpE.start(); 
     } 

    } 
};" 
+0

Да? потому что вы создаете, например, новый MediaPlayer каждый раз, когда вы нажимаете кнопку? – njzk2

ответ

2

Вы создаете медиаплеер каждый раз. Вместо того, чтобы попытаться двигаться

MediaPlayer mpE = MediaPlayer.create(GuitarTuner.this, R.raw.test2);

наружу из обработчика.

0
MediaPlayer mpE = MediaPlayer.create(GuitarTuner.this, R.raw.test2); 

     play.setOnClickListener(new View.OnClickListener() { 
      public void onClick(View v) { 
       if (mpE.isPlaying()) { 
        mpE.pause(); 
        play.setBackgroundResource(R.drawable.play); 
       } else { 

        mpE.start(); 
        play.setBackgroundResource(R.drawable.pause); 
       } 

      } 
     });