Browse Source

ABRepeat: add seek margin with fast seek

Because fast seek is not precise, it will usually seek before the
requested time when seeking with abrepeat, causing the abrepeat to seek
again, and stucks the player in a loop.
Adding a small margin of time in which the seek is considered acceptable
when fast seek is enabled stops it from looping.
merge-requests/2174/head
Duncan McNamara 2 years ago
parent
commit
b73acf01cb
  1. 5
      application/vlc-android/src/org/videolan/vlc/media/PlaylistManager.kt

5
application/vlc-android/src/org/videolan/vlc/media/PlaylistManager.kt

@ -1185,8 +1185,11 @@ class PlaylistManager(val service: PlaybackService) : MediaWrapperList.EventList
}
MediaPlayer.Event.TimeChanged -> {
abRepeat.value?.let {
val fastSeek = settings.getBoolean("always_fast_seek", false)
if (it.stop != -1L && player.getCurrentTime() > it.stop) service.setTime(it.start, false)
if (player.getCurrentTime() < it.start) service.setTime(it.start, false)
if ((fastSeek && player.getCurrentTime() < it.start - 30000L)
|| (!fastSeek && player.getCurrentTime() < it.start))
service.setTime(it.start, false)
}
if (player.getCurrentTime() % 10 == 0L) savePosition()
val now = System.currentTimeMillis()

Loading…
Cancel
Save