Получить состояние MediaPlayer - PullRequest
1 голос
/ 11 апреля 2011

В моем приложении я получаю несколько путей от пользователя (1 к изображению, 1 к звуковой дорожке и 1 к видео) и сохраняю их в базе данных. Когда для просмотра файлов запускается другое действие, нет гарантии, что файлы по-прежнему будут находиться по этим путям или вообще будут существовать, поскольку пользователь выбрал их и, возможно, удалил / переместил их. Поэтому мне нужно иметь возможность проверить, являются ли файлы по этим путям действительными. Мой первоначальный план состоял в том, чтобы просто перехватывать любые исключения, создаваемые при создании + настройке каждого объекта. Вот что я использую для просмотра каждого:

Image - a Drawable
Audio - a MediaPlayer
Video - a VideoView

Я бы обработал каждое исключение, показав пользователю диалог Тем не менее, никаких исключений не выдается, и вместо этого я получаю различные сообщения об ошибках

VideoView показывает свой собственный диалог с сообщением «Извините, это видео не может быть воспроизведено»

Остальные идут в LogCat:

04-10 23:34:43.174: ERROR/PlayerDriver(30): Command PLAYER_SET_DATA_SOURCE completed with an error or info PVMFErrNotSupported
04-10 23:34:43.174: ERROR/MediaPlayer(271): error (1, -4)
04-10 23:34:43.365: ERROR/MediaPlayer(271): Error (1,-4)

Есть мысли о том, как получить состояние MediaPlayer и VideoView или какой-либо другой способ проверить пути?

Спасибо!

1 Ответ

2 голосов
/ 11 апреля 2011

Вы можете установить OnErrorListener для VideoView и для MediaPlayer. Если произойдет ошибка - ваш слушатель будет вызван. Кроме того, вы можете проверить как аудио, так и видео, используя MediaPlayer или VideoView, так как он содержит MediaPlayer для обработки обоих вариантов.

Кстати, я думаю , что слушатель VideoView фактически установлен в объекте MediaPlayer внутри VideoView

...