У меня есть приложение с VideoView для того, чтобы сделать воспроизведение видео на петле я использую onCompletionListner называть setVideoPath() снова, как это:Android VideoView повторение
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 еще?
Что такое mp на вашем коде? –
@jeraldov 'mp' - объект MediaPlayer, который передается как параметр методу onCompletion(). – FoamyGuy