Как повторно использовать медиаплеер после 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();


                }
Другие вопросы по тегам