我正在开发一个功能,我点击下一个按钮,然后暂停视频将寻找下一部分和开始。例如,当video.getCurrentPosition为8000时,我点击按钮进行视频搜索(10000),因为视频显示8000到10000之间相同的内容。
某些Android设备上的此功能运行顺畅,例如Samsung s6 edge,OnePlus,Xiaomi,Smartison
...
但问题是在某些设备上,例如华为,Moto Nexus 6,
当8000上的视频和我点击按钮时,它有一些“delay time
”。看起来大概是1秒。之后,视频终于开始了。
相比之下,我特意改变 seekto(10200),这是错误的参数,这些“问题设备”运行顺畅,就像“普通设备”。但是,之前的视频“{{ 1}}“跳过一些帧并从10200开始。
有谁知道为什么导致这个问题?希望你的回答,谢谢。
答案 0 :(得分:0)
视频是否使用h264
进行了编码?根据建议in a comment to this SO question使用mpeg4
编解码器重新编码,解决了Android seekTo
非常奇怪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>