Просмотр видео в поисках несоответствий - PullRequest
0 голосов
/ 30 декабря 2018

У меня есть видео, которое я записываю со скоростью 60 кадров в секунду или 30 кадров в секунду.Теперь я смотрю это видео в режиме просмотра видео.Я хочу, чтобы видео пропускалось кадр за кадром при каждом нажатии кнопки пропуска.

Проблема заключается в том, что метод поиска ищет ближайший ключевой кадр и перемещается в эту позицию.Поэтому иногда, когда я пропускаю кадры, из-за этого происходит нестабильное поведение.

Так как же мне этого добиться?

Это код, который я использую для поиска видео:

    int currentPosition = videoView.getCurrentPosition();

    double increment = 1000/60;

    currentPosition += Math.round(increment);

    if (videoLoader.canSeekForward()) {
           videoLoader.seekTo(currentPosition);
    }            

Поэтому метод videoView.getCurrentPosition() иногда возвращает неправильное значение.

1 Ответ

0 голосов
/ 30 декабря 2018

Я решил эту проблему, заменив просмотр видео на ExoPlayer.ExoPlayer имеет метод с именем setSeekParameters.Просто используйте этот метод с указанным ниже параметром:

setSeekParameters(SeekParameters.EXACT)

, и тогда метод seekto будет искать точные кадры, а не только ближайшие ключевые кадры.

...