VideoView SeekTo可以在不同的设备上顺利运行或延迟 - Android

时间:2015-12-23 09:17:58

标签: android video seektotime

我正在开发一个功能,我点击下一个按钮,然后暂停视频将寻找下一部分和开始。例如,当video.getCurrentPosition为8000时,我点击按钮进行视频搜索(10000),因为视频显示8000到10000之间相同的内容。

某些Android设备上的此功能运行顺畅,例如Samsung s6 edge,OnePlus,Xiaomi,Smartison ...

但问题是在某些设备上,例如华为,Moto Nexus 6, 当8000上的视频和我点击按钮时,它有一些“delay time”。看起来大概是1秒。之后,视频终于开始了。

相比之下,我特意改变 seekto(10200),这是错误的参数,这些“问题设备”运行顺畅,就像“普通设备”。但是,之前的视频“{{ 1}}“跳过一些帧并从10200开始。

有谁知道为什么导致这个问题?希望你的回答,谢谢。

1 个答案:

答案 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>