[Android] ABRepeat: add seek margin with fast seek
Duncan McNamara
git at videolan.org
Tue Jan 28 10:20:22 UTC 2025
vlc-android | branch: master | Duncan McNamara <dcn.mcnamara at gmail.com> | Wed Jan 8 11:28:37 2025 +0100| [b73acf01cb7add8c5c5410b303e55753ebafccf6] | committer: Duncan McNamara
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.
> https://code.videolan.org/videolan/vlc-android/commit/b73acf01cb7add8c5c5410b303e55753ebafccf6
---
.../vlc-android/src/org/videolan/vlc/media/PlaylistManager.kt | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/application/vlc-android/src/org/videolan/vlc/media/PlaylistManager.kt b/application/vlc-android/src/org/videolan/vlc/media/PlaylistManager.kt
index 952a90aa0c..44f9c31056 100644
--- a/application/vlc-android/src/org/videolan/vlc/media/PlaylistManager.kt
+++ b/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()
More information about the Android
mailing list