update playhead every 30 seconds while playback is active

This commit is contained in:
Jannik 2022-07-16 14:35:22 +02:00
parent 97966f5ad3
commit 3cadaa5c7a
Signed by: Seil0
GPG Key ID: E8459F3723C52C24
2 changed files with 15 additions and 5 deletions

View File

@ -70,7 +70,7 @@ class PlayerActivity : AppCompatActivity() {
private lateinit var controller: StyledPlayerControlView
private lateinit var gestureDetector: GestureDetectorCompat
private lateinit var timerUpdates: TimerTask
private lateinit var controlsUpdates: TimerTask
private var wasInPiP = false
private var remainingTime: Long = 0
@ -286,11 +286,11 @@ class PlayerActivity : AppCompatActivity() {
}
private fun initTimeUpdates() {
if (this::timerUpdates.isInitialized) {
timerUpdates.cancel()
if (this::controlsUpdates.isInitialized) {
controlsUpdates.cancel()
}
timerUpdates = Timer().scheduleAtFixedRate(0, 500) {
controlsUpdates = Timer().scheduleAtFixedRate(0, 500) {
lifecycleScope.launch {
val currentPosition = model.player.currentPosition
val btnNextEpIsVisible = playerBinding.buttonNextEp.isVisible
@ -339,7 +339,7 @@ class PlayerActivity : AppCompatActivity() {
private fun onPauseOnStop() {
playerBinding.videoView.onPause()
model.player.pause()
timerUpdates.cancel()
controlsUpdates.cancel()
}
/**

View File

@ -41,6 +41,7 @@ import org.mosad.teapod.util.metadb.Meta
import org.mosad.teapod.util.metadb.MetaDBController
import org.mosad.teapod.util.metadb.TVShowMeta
import java.util.*
import kotlin.concurrent.scheduleAtFixedRate
/**
* PlayerViewModel handles all stuff related to media/episodes.
@ -52,6 +53,7 @@ class PlayerViewModel(application: Application) : AndroidViewModel(application)
val player = ExoPlayer.Builder(application).build()
private val mediaSession = MediaSessionCompat(application, "TEAPOD_PLAYER_SESSION")
private val playheadAutoUpdate: TimerTask
val currentEpisodeChangedListener = ArrayList<() -> Unit>()
private var currentPlayhead: Long = 0
@ -93,6 +95,14 @@ class PlayerViewModel(application: Application) : AndroidViewModel(application)
if (!isPlaying) updatePlayhead()
}
})
playheadAutoUpdate = Timer().scheduleAtFixedRate(0, 30000) {
viewModelScope.launch {
if (player.isPlaying){
updatePlayhead()
}
}
}
}
override fun onCleared() {