From c00c7bdea0f63ad12105bb8300d25001bcaba750 Mon Sep 17 00:00:00 2001 From: FlaminSarge Date: Tue, 1 Oct 2024 18:25:20 -0700 Subject: [PATCH 1/2] Use 200ms delay for any YT pause on multiview, not just past videos Some livestreams have rewind enabled, and clicking on the seek bar on those currently causes the entire seek bar to shift around in the layout (messing with the seek position) due to the multiview button/border popping in as soon as the video is paused. This adds the same delay to lives as VODs such that clicking on the seekbar on live-rewind-enabled YT livestreams seeks to the correct position (dragging is still an unsupported case, for both VODs and lives). --- src/components/multiview/VideoCell.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/multiview/VideoCell.vue b/src/components/multiview/VideoCell.vue index db9ca2883..bd62e2952 100644 --- a/src/components/multiview/VideoCell.vue +++ b/src/components/multiview/VideoCell.vue @@ -197,7 +197,7 @@ export default { } }, onPlayPause(paused = false) { - if (this.ytPlayer && this.video.status === "past") { + if (this.ytPlayer) { setTimeout(() => { const recheck = this.ytPlayer.getPlayerState() === 2; this.updatePausedState(recheck); From 0848cff0643c4d15553e8d216317ee5107c1d693 Mon Sep 17 00:00:00 2001 From: FlaminSarge Date: Fri, 15 Nov 2024 02:53:48 -0800 Subject: [PATCH 2/2] Tighten the rules around which a delay is used for the play/pause state check, requiring either not-isLive, or allowLiveDvr --- src/components/multiview/VideoCell.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/multiview/VideoCell.vue b/src/components/multiview/VideoCell.vue index bd62e2952..5bf3df7fc 100644 --- a/src/components/multiview/VideoCell.vue +++ b/src/components/multiview/VideoCell.vue @@ -197,7 +197,7 @@ export default { } }, onPlayPause(paused = false) { - if (this.ytPlayer) { + if (this.ytPlayer && (!this.ytPlayer.getVideoData().isLive || this.ytPlayer.getVideoData().allowLiveDvr)) { setTimeout(() => { const recheck = this.ytPlayer.getPlayerState() === 2; this.updatePausedState(recheck);