Обработка ошибки MediaPlayer при удалении SDCard

Я хочу обработать вариант использования, когда пользователь извлекает SD-карту, пока Android MediaPlayer воспроизводит песню. Я пытался сделать это в BroadcastReciever и слушать ACTION_MEDIA_REMOVED или другие действия, связанные с SD. Я всегда получаю ошибки. В приемнике я вызывал player.reset(); чтобы перейти в состояние ожидания. После вызова этого метода мой медиаплеер застрял в бесконечном цикле с ошибками, печатаемыми в logcat. Как я могу управлять этим UC? Могу ли я использовать OnErrorListener?

Я использую Thread для публикации хода воспроизведения песни в пользовательском интерфейсе, я убиваю его перед сбросом плеера.


person Prettygeek    schedule 07.03.2014    source источник


Ответы (1)


Ознакомьтесь с этим описанием того, как обрабатывать ошибки при использовании MediaPlayer. Вы должны использовать OnErrorListener. Это переведет MediaPlayer в состояние ошибки (см. эту диаграмму состояний). Для выхода из этого состояния нужно reset() игрока.

person sergej shafarenka    schedule 07.03.2014