Вопрос

В документах Android есть константа, определенный MEDIA_ERROR_SERVER_DIED, который описывается как:

<цитата>

Медиа-сервер умер.В этом случае приложение должно освободить объект MediaPlayer и создать новый экземпляр.

Это кажется очень расплывчатым.Что значит умер Медиа-сервер?Зачем ему умереть?И правильно ли справляться с этим, сразу же пытаясь сыграть снова после этого?

Это было полезно?

Решение

В Android большая часть операций с мультимедиа (декодирование / кодирование) происходит в медиасервере, за исключением ограниченных случаев, таких как локальное воспроизведение файлов с использованием программного кодека. Android mediaserver обычно дает сбой (прерывание) из-за аппаратных ошибок, неправильно отформатированных файлов или данных. Ага, прости!

Поскольку для многих действий используется общий медиасервер, ошибка в любом из действий может привести к сбою медиасервера. Чаще всего это происходит, когда фоновая активность, такая как медиа-сканер или Google+ Auto-Awesome Movies, пытается отсканировать поврежденный или просто неподдерживаемый файл. Когда это происходит, остальные процессы, которые использовали mediaserver, получают уведомление. Это уведомление передается в приложение в случае MediaPlayer или MediaRecorder.

Когда mediaserver умирает, он немедленно перезапускается. Несмотря на то, что сервер умирает, прокси-объект в приложении все еще жив и использует ресурсы. Следовательно, необходимо освободить объект. Создать новый сразу после уведомления должно быть безопасно.

Другие советы

Одно из условий, которое вызывает это, - когда MediaPlayer не получает или перестает получать видеопоток с сервера.Если ошибка постоянно возникает немедленно (т. Е. Если видео не принимается вообще), вы можете убедиться, что ничто (брандмауэр, VPN и т. Д.) Не блокирует ваш маршрут к серверу.

Это означает, что сервер, с которого вы транслируете, неожиданно прервал соединение.Такое бывает, обычно это связано с ошибкой «Сброс соединения одноранговым узлом».

Вы можете попробовать восстановить соединение, да, возможно, немного подождав.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top