принудительное закрытие, если медиаплеер не используется и нажата кнопка «Назад» - PullRequest
1 голос
/ 08 марта 2012

В упражнении я использую два медиапроигрывателя для разных звуков, если воспроизводятся оба звука и нажата кнопка «Назад», проблем нет, все работает нормально.медиаплееры останавливаются и отпускаются. (mp установлен на loop, mps просто воспроизводит короткий звук)

@Override
protected void onPause() {
    // TODO Auto-generated method stub
    mp.stop();
    super.onPause();
}
@Override
protected void onStop() {
    // TODO Auto-generated method stub
    mp.release();
    mps.release();
    super.onStop();
}

Но, если не воспроизводится один и / или оба звука, я получаю принудительное закрытие, когдакнопка нажата и исключение нулевого указателя.Как бы вы написали код, чтобы проверить, использовались ли когда-либо медиаплееры и, следовательно, нужно их остановить и выпустить?

Ответы [ 2 ]

0 голосов
/ 08 марта 2012

Если вы получаете нулевой указатель в своих onPause и onStop, вам нужно проверить, является ли mp нулевым.

@Override
protected void onPause() {
    if (mp != null)
      mp.stop();
    super.onPause();
}
@Override
protected void onStop() {
   if (mp != null)
    mp.release();
   if (mps != null)
    mps.release();

    super.onStop();
}

Вы можете вести подсчет, если хотите, но это означает отслеживать другиепеременная, когда у вас уже есть доступ к нужным вам переменным

0 голосов
/ 08 марта 2012

Можете ли вы использовать счет и добавить его к нему, если была игра, тогда проверьте, равен ли он 0 или нет.

...