CircularSeekBar
CircularSeekBar copied to clipboard
Seek bar jumping backwards near end
Hello,
Great library! Just one issue, I noticed that sometimes near the end the seek bar is jumping backwards, I'm using it with MediaPlayer, here is my code:
fun setupSeekBar(audioSeekBar: CircularSeekBar) {
audioSeekBar.setOnSeekBarChangeListener(object : CircularSeekBar.OnCircularSeekBarChangeListener {
override fun onProgressChanged(seekBar: CircularSeekBar, progress: Float, b: Boolean) {
logger.logError("progress: $progress max: ${seekBar.max}")
}
override fun onStartTrackingTouch(seekBar: CircularSeekBar) {
model.getMediaPlayer().seekTo(seekBar.progress.toInt())
}
override fun onStopTrackingTouch(seekBar: CircularSeekBar) {}
})
}
fun setupAudioProgressBar(progressBar: CircularSeekBar, handler: Handler) {
progressBar.let {
it.max = model.getMediaPlayer().duration.toFloat()
val interval: Long = 100
val statusChecker = object : Runnable {
override fun run() {
it.progress = model.getMediaPlayer().currentPosition.toFloat()
handler.postDelayed(this, interval)
}
}
statusChecker.run()
}
}
and here are logs of progress and max: (in the beginning progress is always increasing) progress: 5112.0 max: 5400.0 progress: 5256.0 max: 5400.0 progress: 5328.0 max: 5400.0 progress: 5256.0 max: 5400.0
fun setupSeekBar(audioSeekBar: CircularSeekBar) { audioSeekBar.setOnSeekBarChangeListener(object : CircularSeekBar.OnCircularSeekBarChangeListener { override fun onProgressChanged(seekBar: CircularSeekBar, progress: Float, b: Boolean) { logger.logError("progress: $progress max: ${seekBar.max}")
}
override fun onStartTrackingTouch(seekBar: CircularSeekBar) {
}
override fun onStopTrackingTouch(seekBar: CircularSeekBar) {
}
})
}
fun setupAudioProgressBar(progressBar: CircularSeekBar, handler: Handler) { val mediaPlayer = model.getMediaPlayer() progressBar.max = mediaPlayer.duration.toFloat()
val interval: Long = 100
val statusChecker = object : Runnable {
override fun run() {
val currentPosition = mediaPlayer.currentPosition.toFloat()
progressBar.progress = currentPosition
handler.postDelayed(this, interval)
}
}
handler.post(statusChecker)
}