Сбой приложения Android при вызове onPause

Здравствуйте, я новичок в разработке Android, я использую Eclipse, и я разрабатывал некоторые деки. моя проблема заключается в следующем:

public class BernardsActivity extends Activity {

    MediaPlayer eileanBeag;

    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.bernards_layout);

        Button eileanBeagButton = (Button) findViewById(R.id.ButtonB1);

        eileanBeagButton.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
                eileanBeag = MediaPlayer.create(getApplicationContext(), R.raw.eilean_beag);
                eileanBeag.start();
            }    
      });  

    ***public void onPause() {
        eileanBeag.release();                   
    }***    
}

приложение работает нормально, все аудио воспроизводится нормально, но когда я покидаю приложение с помощью кнопки "назад", оно говорит мне, что процесс неожиданно остановился, и мне нужно принудительно завершить работу.

метод работает нормально, когда я определяю MediaPlayer вне метода onCreate, но я хочу использовать много звуков, и чтобы сократить время загрузки, я определяю его только после нажатия кнопки.

Я попытался использовать OnCompleteListener, и он, кажется, работает, но затем он отключает мой звуковой клип рано.

поэтому любая помощь по этому вопросу будет очень цениться.

Благодарю.

3 ответа

Решение

Единственное, что похоже на проблему, это перед звонком eileanBeag.release(); ты должен позвонить eileanBeag.stop();, Вы не можете напрямую освободить игрока во время игры. Также вы пропали без вести super.onPause();

Должно быть так:

public void onPause() {
    super.onPause();
    eileanBeag.pause();
}

protected void onDestroy() {
    super.onDestroy();
    if(eileanBeag != null) {
        eileanBeag.stop();  
        eileanBeag.release();
    }
}

Вам нужно позвонить super.onPause() как первое утверждение внутри вашего onPause метод

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