Я написал простой код следующим образом:
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 по умолчанию не поддерживается на андроиде, но я также знаю много игроков, которые могут его воспроизвести.
Ваш код должен работать, если в базовом оборудовании есть демон-устройство AVI, и устройство способно воспроизводить файлы .avi, используя проигрыватель по умолчанию, предоставляемый аппаратным обеспечением.
Но если вы хотите создать приложение, которое является автономным и способным воспроизводить файлы avi, вы не сможете сделать это с помощью вышеуказанного кода.
В принципе, вам придется создать собственный медиаплеер, у которого есть собственный мультимедийный демультиплексор и AV-кодеки. Например, "moboplayer" на android использует кодек ffmpeg с открытым исходным кодом.
Надеюсь, это ответит на ваш вопрос.