Don't rely on ExoPlayer for updating the current video position

This commit is contained in:
Bnyro 2023-06-27 11:25:39 +02:00
parent ee302dc166
commit e39259abe2
3 changed files with 12 additions and 2 deletions

View File

@ -883,7 +883,7 @@ class PlayerFragment : Fragment(), OnlinePlayerOptions {
}
private fun handleLiveVideo() {
playerBinding.exoPosition.visibility = View.GONE
playerBinding.position.visibility = View.GONE
playerBinding.liveDiff.visibility = View.VISIBLE
playerBinding.duration.text = getString(R.string.live)
playerBinding.exoTime.setOnClickListener {

View File

@ -7,6 +7,7 @@ import android.content.res.Configuration
import android.graphics.Color
import android.os.Handler
import android.os.Looper
import android.text.format.DateUtils
import android.util.AttributeSet
import android.view.MotionEvent
import android.view.View
@ -177,6 +178,8 @@ open class CustomExoPlayerView(
enqueueHideControllerTask()
}
})
updateCurrentPosition()
}
open fun onPlayerEvent(player: Player, playerEvents: Player.Events) = Unit
@ -568,6 +571,12 @@ open class CustomExoPlayerView(
}
}
private fun updateCurrentPosition() {
val position = player?.currentPosition?.div(1000) ?: 0
binding.position.text = DateUtils.formatElapsedTime(position)
handler.postDelayed(100, UPDATE_POSITION_TOKEN, this::updateCurrentPosition)
}
open fun getTopBarMarginDp(): Int {
return if (resources.configuration.orientation == Configuration.ORIENTATION_LANDSCAPE) 10 else 0
}
@ -676,6 +685,7 @@ open class CustomExoPlayerView(
private const val HIDE_CONTROLLER_TOKEN = "hideController"
private const val HIDE_FORWARD_BUTTON_TOKEN = "hideForwardButton"
private const val HIDE_REWIND_BUTTON_TOKEN = "hideRewindButton"
private const val UPDATE_POSITION_TOKEN = "updatePosition"
private const val SUBTITLE_BOTTOM_PADDING_FRACTION = 0.158f
private const val ANIMATION_DURATION = 100L

View File

@ -251,7 +251,7 @@
android:layout_marginStart="10dp">
<TextView
android:id="@id/exo_position"
android:id="@+id/position"
style="@style/TimeString"
android:text="00:00"
tools:ignore="HardcodedText" />