VideoView SeekTo работает плавно или с задержкой на разных устройствах - Android

Я разрабатываю функцию, при которой я нажимаю кнопку "Далее", после чего видео паузы будет искать следующую часть и запускаться. Например, когда video.getCurrentPosition равно 8000, я нажимаю кнопку, чтобы выполнить поиск видео (10000), поскольку видео показывает тот же контент между 8000 и 10000.

Эта функция на некоторых устройствах Android работает гладко, например, Samsung s6 edge,OnePlus,Xiaomi,Smartison...

Но проблема в том, что на некоторых устройствах, таких как Huawei,Moto Nexus 6, когда видео на 8000 и я нажимаю кнопку, оно имеет некоторое "delay time". Похоже, примерно через 1сек., Наконец, видео начинается.

В отличие от этого, я специально изменяю seekto(10200), который является неправильным параметром, и эти "проблемные устройства" работают без сбоев, как "обычные устройства".normal devicesmsgstr "пропустить кадр и начать с 10200.

Кто-нибудь знает, почему причиной этой проблемы? Надеюсь, что ваш ответ, спасибо.

1 ответ

Было ли видео закодировано с использованием h264? Перекодирование как использование mpeg4 Кодек, как предложено в комментарии к такому вопросу, решил для меня очень странную проблему. seekTo поведение Android ViewView,

Чтобы проверить кодировку и перекодировать, вы можете использовать ffmpeg,

$ ffprobe <inputfile> ... ... Stream #0:0(eng): Video: h264 ... ... Это показал, что файл закодирован с использованием h264, который является более поздним и обычно производит лучшее качество для того же mpeg4, но (предположительно как следствие) труднее искать, по крайней мере для Android VideoView,

Кодировать как mpeg4 следующее сработало для меня, но ffmpeg В вики есть больше деталей.

$ ffmpeg -i <inputfile> -c:v libxvid <outputfile>

Другие вопросы по тегам