2015-12-23 4 views
3

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

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

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

В противоположность этому, я специально изменить seekto (10200), который является неправильный параметр, и эти «проблемные устройства» проходит гладко любит «обычные устройства» .Однако видео на предыдущий «normal devices» пропустить некоторые кадр и начинаются с 10200.

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

ответ

0

Было ли видео закодировано с использованием h264? Повторное кодирование с использованием кодека mpeg4, как предложено in a comment to this SO question, разрешило для меня проблему с очень нечетным seekTo поведением Android ViewView.

Для проверки кодировки и повторного кодирования вы можете использовать ffmpeg.

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

Чтобы кодировать как mpeg4, следующее сработало для меня, но the ffmpeg wiki имеет более подробную информацию.

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

Смежные вопросы