Превышает максимальное количество экземпляров OpenCore в Android - PullRequest
2 голосов
/ 12 марта 2010

при запуске приложения отображается ошибка «Превышено максимальное количество экземпляров OpenCore». Как устранить эту ошибку. Спасибо

1 Ответ

3 голосов
/ 28 марта 2011

Вышеуказанное происходит, если вы создаете несколько экземпляров MediaPlayer.

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

  • Определите один медиаплеер, например, в области видимости переменной класса
  • Создайте экземпляр в методе Oncreate и в методах OnResume, как требуется
  • в вашей функции для воспроизведения звука используйте метод .reset, чтобы перевести медиаплеер в состояние ожидания
  • использовать .setDataSource или эквивалентный файл, чтобы перевести его в инициализированное состояние
  • затем. Приготовьтесь к подготовленному состоянию
  • затем .start для воспроизведения звука
  • .stop () и т. Д., Чтобы остановить его
  • когда вы закончите, используйте функцию .release для освобождения аудио ресурса.

Media Player определяется как переменная области видимости класса и создается в методе OnCreate ()

    private void startPlayingAudio()
{
    try {

        Uri path1 = Uri.parse("android.resource://com.yourpackagehere./" + R.raw.beep);         
        mp.reset();  // reset to idle state
        mp.setDataSource(this, path1); // from idle to initialised state

        mp.prepare();

        mp.start();         
    } catch (Exception ioe) {
        Log.e(LOG_TAG, "Error playing the beep sound");
    }
}
...