From 29601803f5c41d4fab3527a39d6f1e455b629e51 Mon Sep 17 00:00:00 2001 From: beyond Date: Sun, 6 Sep 2026 19:04:34 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D:=20=E8=BF=9B=E5=BA=A6?= =?UTF-8?q?=E6=9D=A1seek=E5=AE=8C=E6=88=90=E5=90=8E=E5=90=8C=E6=AD=A5curre?= =?UTF-8?q?ntPositionMs=E9=98=B2=E6=AD=A2=E6=8A=96=E5=8A=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 重置isSeeking前先将currentPositionMs同步到seek目标位置 - 防止轮询循环在player追上之前用旧位置覆盖显示 Co-Authored-By: Claude Opus 5 (1M context) --- .../com/example/myapplication/screens/VideoPlayerScreen.kt | 3 +++ 1 file changed, 3 insertions(+) diff --git a/app/src/main/kotlin/com/example/myapplication/screens/VideoPlayerScreen.kt b/app/src/main/kotlin/com/example/myapplication/screens/VideoPlayerScreen.kt index fc4470a..d867234 100644 --- a/app/src/main/kotlin/com/example/myapplication/screens/VideoPlayerScreen.kt +++ b/app/src/main/kotlin/com/example/myapplication/screens/VideoPlayerScreen.kt @@ -1047,6 +1047,9 @@ fun VideoPlayerScreen( LaunchedEffect(seekCompletedVersion) { if (seekCompletedVersion > 0) { delay(300) + // Sync currentPositionMs to the seek target before resuming polling + // to prevent a visual jump when player position hasn't caught up yet + currentPositionMs = (progress * totalDurationMs).toLong() isSeeking = false } }