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
}
}