From ce99a4748121d9b32f2996166e9612acfb212a4c Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Wed, 4 Oct 2023 10:26:56 -0600 Subject: [PATCH] Dont pause playback unfocused if no video present This is a redo of #582 fixing merge conflicts. --- .../com/lagradost/cloudstream3/ui/player/CS3IPlayer.kt | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/com/lagradost/cloudstream3/ui/player/CS3IPlayer.kt b/app/src/main/java/com/lagradost/cloudstream3/ui/player/CS3IPlayer.kt index 49904f6a..6b80b2a1 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/ui/player/CS3IPlayer.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/ui/player/CS3IPlayer.kt @@ -112,6 +112,7 @@ class CS3IPlayer : IPlayer { private var currentLink: ExtractorLink? = null private var currentDownloadedFile: ExtractorUri? = null private var hasUsedFirstRender = false + private var shouldPauseUnfocused = true private var currentWindow: Int = 0 private var playbackPosition: Long = 0 @@ -512,7 +513,9 @@ class CS3IPlayer : IPlayer { override fun onPause() { Log.i(TAG, "onPause") saveData() - handleEvent(CSPlayerEvent.Pause, PlayerEventSource.Player) + if (shouldPauseUnfocused) { + handleEvent(CSPlayerEvent.Pause, PlayerEventSource.Player) + } //releasePlayer() } @@ -1012,6 +1015,11 @@ class CS3IPlayer : IPlayer { event(EmbeddedSubtitlesFetchedEvent(tracks = exoPlayerReportedTracks)) event(TracksChangedEvent()) event(SubtitlesUpdatedEvent()) + + // if there are no video tracks, but there are audio tracks, don't pause playback while in background + val videoTrackCount = tracks.groups.filter { it.type == TRACK_TYPE_VIDEO }.size + val audioTrackCount = tracks.groups.filter { it.type == TRACK_TYPE_AUDIO }.size + shouldPauseUnfocused = videoTrackCount > 0 || audioTrackCount == 0 } }