[Android] Fix seeking when setTime should be called

Nicolas Pomepuy git at videolan.org
Fri Jul 9 09:33:35 UTC 2021


vlc-android | branch: refs/tags/libvlc-3.4.0-eap5 | Nicolas Pomepuy <nicolas at videolabs.io> | Mon Jun 28 14:00:43 2021 +0200| [4a3237acdc073106bf2bf81df7794298fbd8d941] | committer: Nicolas Pomepuy

Fix seeking when setTime should be called

> https://code.videolan.org/videolan/vlc-android/commit/4a3237acdc073106bf2bf81df7794298fbd8d941
---

 application/vlc-android/src/org/videolan/vlc/PlaybackService.kt     | 6 +++---
 .../src/org/videolan/vlc/gui/video/VideoPlayerActivity.kt           | 3 +--
 .../vlc-android/src/org/videolan/vlc/media/PlayerController.kt      | 6 ++----
 3 files changed, 6 insertions(+), 9 deletions(-)

diff --git a/application/vlc-android/src/org/videolan/vlc/PlaybackService.kt b/application/vlc-android/src/org/videolan/vlc/PlaybackService.kt
index 321fbd27a..40d70b705 100644
--- a/application/vlc-android/src/org/videolan/vlc/PlaybackService.kt
+++ b/application/vlc-android/src/org/videolan/vlc/PlaybackService.kt
@@ -1339,10 +1339,10 @@ class PlaybackService : MediaBrowserServiceCompat(), LifecycleOwner {
 
     @MainThread
     @JvmOverloads
-    fun seek(position: Long, length: Double = this.length.toDouble(), fromUser: Boolean = false) {
-        if (length > 0.0) setPosition((position / length).toFloat()) else setPosition((position.toFloat() / NO_LENGTH_PROGRESS_MAX.toFloat()))
+    fun seek(time: Long, length: Double = this.length.toDouble(), fromUser: Boolean = false) {
+        if (length > 0.0) this.time = time else setPosition((time.toFloat() / NO_LENGTH_PROGRESS_MAX.toFloat()))
         if (fromUser) {
-            publishState(position)
+            publishState(time)
         }
     }
 
diff --git a/application/vlc-android/src/org/videolan/vlc/gui/video/VideoPlayerActivity.kt b/application/vlc-android/src/org/videolan/vlc/gui/video/VideoPlayerActivity.kt
index 2a7d0c2d9..31d17ee11 100644
--- a/application/vlc-android/src/org/videolan/vlc/gui/video/VideoPlayerActivity.kt
+++ b/application/vlc-android/src/org/videolan/vlc/gui/video/VideoPlayerActivity.kt
@@ -33,7 +33,6 @@ import android.content.res.Configuration
 import android.media.AudioManager
 import android.net.Uri
 import android.os.*
-import android.support.v4.media.session.PlaybackStateCompat
 import android.text.Editable
 import android.text.TextWatcher
 import android.util.DisplayMetrics
@@ -276,7 +275,7 @@ open class VideoPlayerActivity : AppCompatActivity(), PlaybackService.Callback,
         override fun onProgressChanged(seekBar: SeekBar, progress: Int, fromUser: Boolean) {
             if (!isFinishing && fromUser && service?.isSeekable == true) {
                 seek(progress.toLong(), fromUser)
-                overlayDelegate.showInfo(Tools.millisToString(progress.toLong()), 1000)
+                if (service?.length != 0L) overlayDelegate.showInfo(Tools.millisToString(progress.toLong()), 1000)
             }
             if (fromUser) {
                 overlayDelegate.showOverlay(true)
diff --git a/application/vlc-android/src/org/videolan/vlc/media/PlayerController.kt b/application/vlc-android/src/org/videolan/vlc/media/PlayerController.kt
index 4b5137a65..d4615ff14 100644
--- a/application/vlc-android/src/org/videolan/vlc/media/PlayerController.kt
+++ b/application/vlc-android/src/org/videolan/vlc/media/PlayerController.kt
@@ -3,7 +3,6 @@ package org.videolan.vlc.media
 import android.content.Context
 import android.net.Uri
 import android.support.v4.media.session.PlaybackStateCompat
-import android.util.Log
 import android.widget.Toast
 import androidx.annotation.MainThread
 import androidx.core.net.toUri
@@ -108,9 +107,8 @@ class PlayerController(val context: Context) : IVLCVout.Callback, MediaPlayer.Ev
         release(mp)
     }
 
-    fun seek(position: Long, length: Double = getLength().toDouble()) {
-        val pos = if (length > 0.0) (position / length).toFloat() else (position / NO_LENGTH_PROGRESS_MAX).toFloat()
-        setPosition(pos)
+    fun seek(time: Long, length: Double = getLength().toDouble()) {
+        if (length > 0.0) setTime(time) else setPosition((time / NO_LENGTH_PROGRESS_MAX).toFloat())
     }
 
     fun setPosition(position: Float) {



More information about the Android mailing list