Сглаживание видео в Android - PullRequest
0 голосов
/ 01 ноября 2018

Я пытаюсь добиться плавной очистки видео с Android VideoView. seekTo метод MediaPlayer делает не совсем то, что я хочу. Он точно не ищет миллисекунды, которые я прошел в нем, он на самом деле воспроизводит с / прыжки до ближайшей позиции, а не точно, к чему я стремился. Также кадры показывают с большими пробелами. Не точный кадр за миллисекунду.

Я начал искать и обнаружил, что SEEK_CLOSEST_SYNC может искать только ближайший кадр синхронизации, а не ТОЧНЫЙ. Это зависит от того, как видео было сгенерировано. Как мне добиться плавной очистки и поиска точного положения? Даже видео приостановлено или воспроизводится. Это возможно через Android VideoView или MediaPlayer класс или я должен изменить подход?

1 Ответ

0 голосов
/ 01 ноября 2018

Это не простой вопрос, чтобы ответить. Я провел месяц, исследуя и внедряя это сам.

Единственный способ добиться этого - использовать MediaCodec .

Вы можете посмотреть этот проект, который выполняет точную очистку, используя MediaCodec. Единственная проблема, с которой я столкнулся в этом проекте, заключается в том, что для загрузки и отображения буфера на поверхности требуется около 0,5 секунды.

Вы также можете взглянуть на Графика , особенно класс MoviePlayer. Другим источником является веб-сайт BigFlake .

Я закончил тем, что создал свою собственную реализацию, используя MediaCodec, поскольку ни один из них не дал мне именно то, что я искал, так как я строил анализатор гольфа, мне нужно было (в режиме реального времени) точно (по кадрам) -кадр) чистка видео.

Вы также можете посмотреть на вопрос Я спросил, что похоже на это, где я добавил много информации о том, как я достиг этого. Хотя этот вопрос больше касается воспроизведения видео по кадрам, я думаю, что в нем есть ценная информация.

...