视频视图寻求在不同的设备上顺利工作或延迟 - Android



我正在开发一个函数,我单击下一步按钮,然后暂停视频将搜索到下一部分并开始。例如,当video.getCurrentPosition为8000时,我单击按钮使视频查找(10000(,因为视频在8000和10000之间显示相同的内容。

此功能在某些安卓设备上运行流畅,例如Samsung s6 edge,OnePlus,Xiaomi,Smartison...

但问题是,在某些设备上,例如华为,Moto Nexus 6,当视频在8000上,我点击按钮,它有一些" delay time "。大约 1 秒后,视频终于开始了。

相比之下,我特意更改了seekto(10200(,这是错误的参数,这些"问题设备"像"普通设备"一样运行流畅。但是,之前"normal devices"上的视频跳过了一些帧并从10200开始。

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

视频是否使用 h264 编码? 正如对此 SO 问题的评论中所建议的那样,使用 mpeg4 编解码器重新编码为我解决了 Android ViewView非常奇怪的seekTo行为问题。

要检查编码并重新编码,您可以使用 ffmpeg

$ ffprobe <inputfile> ... ... Stream #0:0(eng): Video: h264 ... ... 这表明该文件是使用 h264 编码的,这是较新的,并且通常在与mpeg4相同的比特率下产生更好的质量,但(大概是因此(更难通过,至少对于 Android VideoView

要按mpeg4编码,以下内容对我有用,但ffmpeg wiki 有更多细节。

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

最新更新