Как повторно использовать медиаплеер после release() и null?
В моем приложении есть кнопка, которая при нажатии воспроизводит короткий mp3-файл. Я хочу правильно разблокировать и повторно использовать объект медиаплеера (чтобы он не мешал другим приложениям), когда, например, пользователь получает телефонный звонок или нажимается кнопка "Домой".
Если я реализую onPause
а также onSto
р таким образом:
@Override
public void onPause() {
super.onPause();
mp.release();
mp = null;
}
@Override
public void onStop() {
super.onStop();
mp.release();
mp = null;
}
тогда как мне повторно использовать mp при вызове onRestart? это правильный способ сделать это? возможно я должен использовать mp.stop()
?
Спасибо
Изменить: я нашел решение сам. воссоздать объект снова:
@Override
publib void onResume() {
super.onResume();
mp = new MediaPlayer();
}
делает работу еще нуб...:) спасибо
1 ответ
Решение
Использование onCompletion
@Override
public void onCompletion(MediaPlayer mp) {
// TODO Auto-generated method stub
myStereo.setLooping(true);
myStereo.release();
try {
myStereo.prepare();
} catch (IllegalStateException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
myStereo.start();
}