Android VideoView не может играть.avi

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

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 файлы, если это не правильно.

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

1 ответ

Решение

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

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

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

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

Другие вопросы по тегам