[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