2014-09-29 4 views
0

Я пытаюсь сделать простой медиаплеер, но кнопка паузы не работает. Когда я нажимаю кнопку паузы, она останавливается, но когда я нажимаю кнопку «Воспроизвести снова», она начинается с начала снова.Android-медиаплеер не запускается после паузы

Я не знаю, как сделать одну кнопку, где я могу играть/приостанавливать кнопку.

Код настоящее время у меня:

http://pastebin.com/wiDkzw5S

Спасибо уже!

+0

вы не давая время/длины в вашей паузе, откуда он может снова начать, поэтому она начинается с начала снова ... – Umair

ответ

1

Необходимо будет сохранить текущее положение медиаплеера и restart it later from that position using seekTo.

Что-то вроде:

int currentPos = 0; 
pause.setOnClickListener(new OnClickListener() { 

    public void onClick(View v) { 

     if (mediaPlayer.isPlaying()) { 
      currentPos = mediaPlayer.getCurrentPosition(); 
      mediaPlayer.pause(); 
      //change image to play 
     } else { 
      mediaPlayer.seekTo(currentPos); 
      mediaPlayer.start(); 
      //again revert image to pause 
     } 
    } 
}); 

Надеется, что это помогает.

+0

я получаю: не может относиться к неконечному переменному внутри внутреннего класса определенных другим способом. Я исправил ошибку, но когда я запустил приложение, он дал мне ошибку, когда я нажимаю на паузу. В настоящее время у меня есть это: http://pastebin.com/A6AJMc6B –

+0

Для 'currentPos'? Вам нужно будет объявить 'currentPos' как глобальную переменную. @TimJake –

+0

Где я могу это добавить? Я продолжаю получать ошибки:/ –

0

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

int length=0; 
Button pause = (Button) findViewById(R.id.pause); 
pause.setOnClickListener(new OnClickListener() { 
public void onClick(View v) { 
if (mediaPlayer.isPlaying()) { 
     mediaPlayer.pause(); 
     length=mediaPlayer.getCurrentPosition();  
    } else { 
     mediaPlayer.seekTo(length); 
     mediaPlayer.start(); 
      } 
     } 
    }); 
Смежные вопросы