Disable progress bar advance in Exoplayer progress bar in Android

Viewed 11

I'm using the Exoplayer library to load videos in my application, but in certain videos I want to avoid that the user can't go forward in the video progress bar, only backward, until now I had achieved something by adding a listener to the DefaultTimeBar in this way:

var currentPosition: Long = 0
val exoPlayerProgressBar: DefaultTimeBar? = localPlayerView?.findViewById(
    R.id.exo_progress
) as? DefaultTimeBar
exoPlayerProgressBar?.addListener(object: TimeBar.OnScrubListener {
    override fun onScrubStart(timeBar: TimeBar, position: Long) {
        currentPosition = position
    }

    override fun onScrubMove(timeBar: TimeBar, position: Long) {
        if (currentPosition < position) {
            timeBar.setPosition(position)
            timeBar.setEnabled(false)
        }
    }

    override fun onScrubStop(timeBar: TimeBar, position: Long, canceled: Boolean) {
        timeBar.setEnabled(true)
    }
})

But it doesn't work well at all, I think the listener takes a long time to be called and the position of the onScrubStart method is not exact and besides, although I manage to disable the user to advance, I haven't managed to do it if he clicks on a place on the bar. Is there another way that I don't know?

1 Answers

If you are using custom view for your xml then setting this in xml will work for androidx.media3.ui.DefaultTimeBar

app:touch_target_height="0dp"

I also got this answer from one of stackoverflow answer only but not having link as of now.

Related