Android VideoView не может играть .avi - PullRequest
1 голос
/ 19 мая 2011

Я написал простой код, подобный этому:

VideoView v = (VideoView) findViewById(R.id.videoView);
MediaController mc = new MediaController(this);
mc.setAnchorView(v);
mc.setMediaPlayer(v);
v.setMediaController(mc);
v.setVideoPath("/sdcard/media/video/1.avi");
v.start();

Моя проблема с этим кодом. AVI файлы не могут быть воспроизведены вообще. Logcat покажи мне эти строки: AudioFlinger: запись заблокирована на 209 мсек, 11 отложенных записей, поток 0x15440 MP3Extractor: Невозможно выполнить повторную синхронизацию. Сигнализация окончания потока.

Скажите, пожалуйста, как я могу воспроизводить файлы avi, если они некорректны?

P.S. Да, я знаю, что AVI не поддерживается на Android по умолчанию, но я также знаю много игроков, которые могут играть в нее.

1 Ответ

8 голосов
/ 19 мая 2011

Ваш код должен работать, если базовое оборудование имеет демультиплексор AVI, и устройство способно воспроизводить файлы .avi с помощью проигрывателя по умолчанию, предоставляемого оборудованием.

Но если вы хотите создать приложение, которое самосодержащиеся и способные воспроизводить файлы avi, которые вы не сможете сделать с помощью приведенного выше кода.

По сути, вам придется создать собственный медиаплеер, который имеет собственный медиа-демультиплексор и AV-кодеки ... например, "moboplayer "на Android использует кодек с открытым исходным кодом ffmpeg.

Надеюсь, что это отвечает на ваш вопрос ..

...