diff --git a/app/src/main/java/hu/bbara/purefin/player/manager/PlayerManager.kt b/app/src/main/java/hu/bbara/purefin/player/manager/PlayerManager.kt index e392482..73e0f4e 100644 --- a/app/src/main/java/hu/bbara/purefin/player/manager/PlayerManager.kt +++ b/app/src/main/java/hu/bbara/purefin/player/manager/PlayerManager.kt @@ -94,6 +94,18 @@ class PlayerManager @Inject constructor( refreshMetadata(mediaItem) refreshQueue() } + + override fun onPositionDiscontinuity( + oldPosition: Player.PositionInfo, + newPosition: Player.PositionInfo, + reason: Int + ) { + if (reason == Player.DISCONTINUITY_REASON_SEEK && + newPosition.positionMs < oldPosition.positionMs + ) { + refreshSubtitleRendererOnBackwardSeek() + } + } } init { @@ -270,6 +282,17 @@ class PlayerManager @Inject constructor( } } + private fun refreshSubtitleRendererOnBackwardSeek() { + val currentParams = player.trackSelectionParameters + if (C.TRACK_TYPE_TEXT in currentParams.disabledTrackTypes) return + scope.launch { + player.trackSelectionParameters = currentParams.buildUpon() + .setTrackTypeDisabled(C.TRACK_TYPE_TEXT, true) + .build() + player.trackSelectionParameters = currentParams + } + } + fun release() { scope.cancel() player.removeListener(listener) diff --git a/app/src/main/java/hu/bbara/purefin/player/module/VideoPlayerModule.kt b/app/src/main/java/hu/bbara/purefin/player/module/VideoPlayerModule.kt index 613d256..aa7b141 100644 --- a/app/src/main/java/hu/bbara/purefin/player/module/VideoPlayerModule.kt +++ b/app/src/main/java/hu/bbara/purefin/player/module/VideoPlayerModule.kt @@ -66,7 +66,7 @@ object VideoPlayerModule { .setTrackSelector(trackSelector) .setPauseAtEndOfMediaItems(true) .setLoadControl(loadControl) - .setSeekParameters(SeekParameters.CLOSEST_SYNC) + .setSeekParameters(SeekParameters.PREVIOUS_SYNC) .setAudioAttributes(audioAttributes, true) .build() .apply {