fix: Lots of small adjustments and changes to native player

This commit is contained in:
PartyDonut 2025-10-16 15:11:52 +02:00
parent 360b87dacb
commit b4e68c9e15
14 changed files with 197 additions and 156 deletions

View file

@ -58,8 +58,6 @@ internal fun ExoPlayer(
val videoHost = VideoPlayerObject
val context = LocalContext.current
var initialized = false
val extractorsFactory = DefaultExtractorsFactory().apply {
val isLowRamDevice = context.getSystemService<ActivityManager>()?.isLowRamDevice == true
setTsExtractorTimestampSearchBytes(
@ -146,7 +144,7 @@ internal fun ExoPlayer(
it.clearFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON)
}
}
videoHost.setPlaybackState(
PlaybackState(
position = exoPlayer.currentPosition,
@ -167,13 +165,17 @@ internal fun ExoPlayer(
override fun onTracksChanged(tracks: Tracks) {
super.onTracksChanged(tracks)
if (!initialized) {
initialized = true
val subTracks = exoPlayer.getSubtitleTracks()
val audioTracks = exoPlayer.getAudioTracks()
if (subTracks.isEmpty() && audioTracks.isEmpty()) return
if (subTracks != VideoPlayerObject.exoSubTracks.value || audioTracks != VideoPlayerObject.exoAudioTracks.value) {
VideoPlayerObject.implementation.playbackData.value?.let {
exoPlayer.properlySetSubAndAudioTracks(it)
}
VideoPlayerObject.exoSubTracks.value = exoPlayer.getSubtitleTracks()
VideoPlayerObject.exoAudioTracks.value = exoPlayer.getAudioTracks()
VideoPlayerObject.exoSubTracks.value = subTracks
VideoPlayerObject.exoAudioTracks.value = audioTracks
}
}
}