Fix skipping after paused at zero sometimes not working

Affects some autoplay blocking

Resolves #1437
This commit is contained in:
Ajay
2022-08-16 16:42:47 -04:00
parent faeb5dede0
commit 7d3f86ded1

View File

@@ -639,7 +639,7 @@ function getVirtualTime(): number {
(performance.now() - lastKnownVideoTime.preciseTime) / 1000 + lastKnownVideoTime.videoTime : null); (performance.now() - lastKnownVideoTime.preciseTime) / 1000 + lastKnownVideoTime.videoTime : null);
if ((lastTimeFromWaitingEvent || !utils.isFirefox()) if ((lastTimeFromWaitingEvent || !utils.isFirefox())
&& !isSafari() && virtualTime && Math.abs(virtualTime - video.currentTime) < 0.6) { && !isSafari() && virtualTime && Math.abs(virtualTime - video.currentTime) < 0.6 && video.currentTime !== 0) {
return virtualTime; return virtualTime;
} else { } else {
return video.currentTime; return video.currentTime;
@@ -722,6 +722,7 @@ function setupVideoListeners() {
switchingVideos = false; switchingVideos = false;
let startedWaiting = false; let startedWaiting = false;
let lastPausedAtZero = true;
video.addEventListener('play', () => { video.addEventListener('play', () => {
// If it is not the first event, then the only way to get to 0 is if there is a seek event // If it is not the first event, then the only way to get to 0 is if there is a seek event
@@ -732,7 +733,7 @@ function setupVideoListeners() {
updateVirtualTime(); updateVirtualTime();
if (switchingVideos) { if (switchingVideos || lastPausedAtZero) {
switchingVideos = false; switchingVideos = false;
logDebug("Setting switching videos to false"); logDebug("Setting switching videos to false");
@@ -740,6 +741,8 @@ function setupVideoListeners() {
if (sponsorTimes) startSkipScheduleCheckingForStartSponsors(); if (sponsorTimes) startSkipScheduleCheckingForStartSponsors();
} }
lastPausedAtZero = false;
// Check if an ad is playing // Check if an ad is playing
updateAdFlag(); updateAdFlag();
@@ -755,6 +758,7 @@ function setupVideoListeners() {
}); });
video.addEventListener('playing', () => { video.addEventListener('playing', () => {
updateVirtualTime(); updateVirtualTime();
lastPausedAtZero = false;
if (startedWaiting) { if (startedWaiting) {
startedWaiting = false; startedWaiting = false;
@@ -789,6 +793,8 @@ function setupVideoListeners() {
lastTimeFromWaitingEvent = null; lastTimeFromWaitingEvent = null;
startSponsorSchedule(); startSponsorSchedule();
} else if (video.currentTime === 0) {
lastPausedAtZero = true;
} }
}); });
video.addEventListener('ratechange', () => startSponsorSchedule()); video.addEventListener('ratechange', () => startSponsorSchedule());