У меня есть приложение с VideoView, чтобы воспроизвести видео в цикле, я использую onCompletionListner для повторного вызова setVideoPath (), например:
mVideoView.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
@Override
public void onPrepared(MediaPlayer arg0) {
mVideoView.start();
}
});
mVideoView.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
public void onCompletion(MediaPlayer mp) {
//I have a log statment here, so I can see that it is making it this far.
mp.reset(); // <--- I added this recently to try to fix the problem
mVideoView.setVideoPath(file.getAbsolutePath());
}
});
Эта настройка хорошо работает на всех устройствах, с которыми я сталкивался до сих пор, у меня никогда не было проблем с ее повторением.
Однако Motorola Xoom, на котором я тестирую, недавно был обновлен до ICS. Теперь, когда это на ICS, это будет работать некоторое время и зацикливать видео. Но в конце концов (я добавил счетчик и некоторые журналы, похоже, не было никакого паттерна, сколько раз он успешно повторял цикл перед остановкой), он прекратит цикл и просто сядет на стоп-кадр первого кадра в фильме.
Кто-нибудь знает, что может привести к тому, что это больше не будет работать должным образом? ИЛИ кто-нибудь знает другой способ заставить VideoView работать правильно, который все еще работает под ICS?