open-ani / animeko

一站式在线弹幕追番平台:全自动 BT + 在线多数据源聚合,离线缓存,Bangumi 收藏同步,弹幕云过滤 ... 100% Kotlin Compose Multiplatform
https://myani.org
GNU Affero General Public License v3.0
1.99k stars 61 forks source link

PC 连续快进可能会无效 #1238

Open Him188 opened 3 days ago

Him188 commented 3 days ago

问题描述

相当于只按了一次. 但进度条是有变的.

复现步骤

No response

Ani 版本号

4.0.0

操作系统

macOS (M 系列芯片)

应用日志

Him188 commented 2 days ago

是 VLC 的问题.

快速按方向右键, player.controls().skipTime(deltaMillis) 会正常返回, 但是日志可以看到有很多 error:

[00000003472ce650] main decoder error: Timestamp conversion failed for 485109625: no reference clock
[00000003472ce650] main decoder error: Could not convert timestamp 0 for videotoolbox

慢速按右键是没问题的. 猜测是因为快进后 VLC 会异步解码, 如果在解码完成前又执行快进, 就会出错.

比较难解决, 因为 libvlc_media_player_set_time 返回 void, 只能通过后面回调知道是否有错误. 而且也没有保证多少时间内能收到错误.