Open Predidit opened 1 month ago
有日志吗?我用./glfwplay -buffer 2000+1500000 -log all $URL
然后用左右键fast seek看日志正常
我在master分支扩展了VideoPlayerController一些方法,比如在import fvp并registerWith的条件下可以调用controller.fastSeekTo()
,也可以实时切换解码器setVideoDecoders([...])
,不过所有这些方法只有在intialize()成功后才会起作用,controller构造的时候只能用默认的或registerWith设置的解码器。
我使用了错误的注册方法,应该使用 'fastSeek': true
而不是 'fastSeek': 'true',不过我仍然想反馈一个关于跳转的问题
我使用以下的代码注册 fvp
fvp.registerWith(options: {
'platforms': ['windows', 'linux'],
'player': {
'avio.reconnect': '1',
'avio.reconnect_delay_max': '7',
'buffer': '2000+1500000',
'demux.buffer.ranges': '8',
}
});
我尝试使用 fastSeek 是希望解决在较大缓存的情况下,向前的跳转偶尔会出现长达数秒的卡顿甚至卡死的问题。我捕获了发生卡顿时的日志,如下所示,卡顿在第14次跳转时发生,跳转的目标应该存在缓存,这本应该立即完成。
当这种冻结发生时, 视频会继续播放, 但 VideoPlayerController.value.position 等属性不再更新
seek是在解复用的线程执行的,如果有seek请求时,当前下载的一个包还没完成卡了一会(看日志是开始下载一个新的ts切片会卡比较久),seek就会推迟。对于开启缓存的情况其实不用这么操作,我这边可以优化一下
新发布的 0.27.0 包含这一修复吗
似乎新的 0.27.0 还没有上传到 pub.dev 上
没,bug在mdk
当出现向前的seek导致的视频冻结时,调用 dispose 方法会概率冻结整个应用程序。
并且会得到 operator ()427 postCObject error 错误
我在使用最新的 fvp 0.26.1 我尝试使用以下代码注册 fvp 并启用更大的播放缓存
当存在
'fastSeek': 'true'
时,缓存相关设置不生效,移除后缓存相关设置生效