mirror of
https://github.com/ajayyy/SponsorBlock.git
synced 2025-12-11 14:07:13 +03:00
Fix skipping after paused at zero sometimes not working
Affects some autoplay blocking Resolves #1437
This commit is contained in:
@@ -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());
|
||||||
|
|||||||
Reference in New Issue
Block a user