Ответ 1
В Android большая часть активности мультимедиа (декодирование/кодирование) происходит в медиарежиссере, за исключением ограниченных случаев, таких как локальное воспроизведение файлов с использованием программного кодека. Android mediaserver регулярно аварийно завершает (прерывает) аппаратные ошибки, неправильно отформатированные файлы или данные. Да, извините!
Поскольку во многих действиях используется общий медиасервер, ошибка в любом из действий может привести к поломке медиазера. Это чаще всего происходит, когда фоновая активность, такая как медиа-сканер или Google+ Auto-Awesome Movies, пытается сканировать поврежденный или просто неподдерживаемый файл. Когда это произойдет, остальные процессы, которые использовали медиасервер, получают уведомление. Это уведомление передается приложению в случае MediaPlayer или MediaRecorder.
Когда mediaserver умирает, он немедленно перезапускается. Несмотря на то, что сервер умирает, объект-прокси в приложении все еще жив и использует ресурсы. Следовательно, необходимо освободить объект. Безопасное создание нового сразу после уведомления.