我正在开发一个功能,我点击下一步按钮然后暂停视频将寻找下一部分并开始。例如,当 video.getCurrentPosition 是 8000 时,我点击按钮使视频搜索到 (10000),因为视频在 8000 和 10000 之间显示相同的内容。
此功能在部分安卓设备上运行流畅,如Samsung s6 edge,OnePlus,Xiaomi,Smartison
...
但问题是在某些设备上,例如华为、Moto Nexus 6,
当我在 8000 上点击按钮时,它有一些“延迟时间
”。看起来大约 1 秒。稍后,视频终于开始了。
相比之下,我特地改了seekto(10200),这是错误的参数,这些“问题设备”像“正常设备”一样运行流畅。但是,之前的视频“普通设备
”跳过一些帧并从 10200 开始。
有人知道为什么会导致这个问题吗?希望得到您的回答,谢谢。
最佳答案
视频是否使用 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>
关于android - VideoView SeekTo 在不同设备上运行流畅或延迟 - Android,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34432217/