Dont pause playback unfocused if no video present

This is a redo of #582 fixing merge conflicts.
This commit is contained in:
Luna712 2023-10-04 10:26:56 -06:00 committed by GitHub
parent 177b1e47f3
commit ce99a47481
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -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
}
}