From ceeee97e63a9f808cb2ad34eb5d4dbec5d6e211a Mon Sep 17 00:00:00 2001 From: Lunatic Date: Fri, 27 Feb 2026 16:39:47 +0800 Subject: [PATCH] Suppress auto skip for 2s after manual seek Prevents intro/outro skip from immediately triggering when user uses jump back, prev chapter, or seeks manually into a skip zone. --- client/components/app/MediaPlayerContainer.vue | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/client/components/app/MediaPlayerContainer.vue b/client/components/app/MediaPlayerContainer.vue index 294a6907f..42b2619a5 100644 --- a/client/components/app/MediaPlayerContainer.vue +++ b/client/components/app/MediaPlayerContainer.vue @@ -280,9 +280,11 @@ export default { this.playerHandler.playPause() }, jumpForward() { + this._manualSeekTime = Date.now() this.playerHandler.jumpForward() }, jumpBackward() { + this._manualSeekTime = Date.now() this.playerHandler.jumpBackward() }, setVolume(volume) { @@ -293,6 +295,7 @@ export default { this.playerHandler.setPlaybackRate(playbackRate) }, seek(time) { + this._manualSeekTime = Date.now() this.playerHandler.seek(time) }, playbackTimeUpdate(time) { @@ -568,6 +571,9 @@ export default { if (!doSkipIntro && !doSkipOutro) return if (!this.isPlaying || !this.chapters.length) return + // 用户手动seek后2秒内不触发跳过 + if (this._manualSeekTime && Date.now() - this._manualSeekTime < 2000) return + // 防重入:正在跳过时等待到达目标位置后再解除 if (this._isSkipping) { if (this._skipTarget != null && currentTime >= this._skipTarget - 0.5) {