mirror of
https://github.com/MaintainTeam/LastPipeBender.git
synced 2025-03-03 23:08:21 +03:00
SponsorBlock: Fixed (?) rewinding over skippable segments
This commit is contained in:
parent
ba4b4122dc
commit
c35dc98e27
1 changed files with 14 additions and 4 deletions
|
@ -745,6 +745,10 @@ public abstract class BasePlayer implements
|
|||
}
|
||||
|
||||
public void triggerProgressUpdate() {
|
||||
triggerProgressUpdate(false);
|
||||
}
|
||||
|
||||
public void triggerProgressUpdate(final boolean isRewind) {
|
||||
if (simpleExoPlayer == null) {
|
||||
return;
|
||||
}
|
||||
|
@ -761,13 +765,19 @@ public abstract class BasePlayer implements
|
|||
return;
|
||||
}
|
||||
|
||||
final int skipTo = (int) Math.ceil((segment.endTime));
|
||||
int skipTarget = isRewind
|
||||
? (int) Math.ceil((segment.startTime)) - 1
|
||||
: (int) Math.ceil((segment.endTime));
|
||||
|
||||
if (skipTarget < 0) {
|
||||
skipTarget = 0;
|
||||
}
|
||||
|
||||
// temporarily force EXACT seek parameters to prevent infinite skip looping
|
||||
final SeekParameters seekParams = simpleExoPlayer.getSeekParameters();
|
||||
simpleExoPlayer.setSeekParameters(SeekParameters.EXACT);
|
||||
|
||||
seekTo(skipTo);
|
||||
seekTo(skipTarget);
|
||||
|
||||
simpleExoPlayer.setSeekParameters(seekParams);
|
||||
|
||||
|
@ -807,7 +817,7 @@ public abstract class BasePlayer implements
|
|||
|
||||
if (DEBUG) {
|
||||
Log.d("SPONSOR_BLOCK", "Skipped segment: currentProgress = ["
|
||||
+ currentProgress + "], skipped to = [" + skipTo + "]");
|
||||
+ currentProgress + "], skipped to = [" + skipTarget + "]");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1357,7 +1367,7 @@ public abstract class BasePlayer implements
|
|||
Log.d(TAG, "onFastRewind() called");
|
||||
}
|
||||
seekBy(-getSeekDuration());
|
||||
triggerProgressUpdate();
|
||||
triggerProgressUpdate(true);
|
||||
}
|
||||
|
||||
public void onFastForward() {
|
||||
|
|
Loading…
Add table
Reference in a new issue