android - VideoView SeekTo 在不同设备上运行流畅或延迟 - Android

标签 android video seektotime

我正在开发一个功能,我点击下一步按钮然后暂停视频将寻找下一部分并开始。例如,当 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/

相关文章:

batch-file - 按长度对视频进行排序,需要效率,如果可能的话还需要可靠性

swift - 即使有公差,AVPlayer Seek 也不准确Before : kCMTimeZero

java - 在 android.widget.AbsListView.contentFits(AbsListView.java :722)

android - 尝试setText时,textview不断崩溃

android - 是否有可能检测到无限循环?

video - 使用 FFmpeg 修剪视频并在其上添加飞旋镖效果

android - 如何按用户获取 youtube 视频

android - 如何在 onNewIntent 执行之前拦截 NFC 标签

ios - seekToTime 不适用于 iOS 9 中的实时 Assets

ios - avplayer 在 seekToTime 上完成歌曲