From da58b72f9d3025cb5b9a3486bf047d72f0ac194f Mon Sep 17 00:00:00 2001 From: Kai <git@seaoflaurels.com> Date: Tue, 14 Jan 2025 11:36:37 -0600 Subject: [PATCH] add background playback support for videos without an explicit audio source Changelog: changed --- .../mainactivity/main/VideoDetailView.kt | 24 +++++++++---------- .../views/video/FutoVideoPlayerBase.kt | 7 ++++++ 2 files changed, 18 insertions(+), 13 deletions(-) diff --git a/app/src/main/java/com/futo/platformplayer/fragment/mainactivity/main/VideoDetailView.kt b/app/src/main/java/com/futo/platformplayer/fragment/mainactivity/main/VideoDetailView.kt index bc606582..c20ed9af 100644 --- a/app/src/main/java/com/futo/platformplayer/fragment/mainactivity/main/VideoDetailView.kt +++ b/app/src/main/java/com/futo/platformplayer/fragment/mainactivity/main/VideoDetailView.kt @@ -870,20 +870,18 @@ class VideoDetailView : ConstraintLayout { } _slideUpOverlay?.hide(); } else null, - if(!isLimitedVersion) - RoundButton(context, R.drawable.ic_screen_share, context.getString(R.string.background), TAG_BACKGROUND) { - if(!allowBackground) { - _player.switchToAudioMode(); - allowBackground = true; - it.text.text = resources.getString(R.string.background_revert); - } - else { - _player.switchToVideoMode(); - allowBackground = false; - it.text.text = resources.getString(R.string.background); - } - _slideUpOverlay?.hide(); + if (!isLimitedVersion) RoundButton(context, R.drawable.ic_screen_share, if (allowBackground) context.getString(R.string.background_revert) else context.getString(R.string.background), TAG_BACKGROUND) { + if (!allowBackground) { + _player.switchToAudioMode(); + allowBackground = true; + it.text.text = resources.getString(R.string.background_revert); + } else { + _player.switchToVideoMode(); + allowBackground = false; + it.text.text = resources.getString(R.string.background); } + _slideUpOverlay?.hide(); + } else null, if(!isLimitedVersion) RoundButton(context, R.drawable.ic_download, context.getString(R.string.download), TAG_DOWNLOAD) { diff --git a/app/src/main/java/com/futo/platformplayer/views/video/FutoVideoPlayerBase.kt b/app/src/main/java/com/futo/platformplayer/views/video/FutoVideoPlayerBase.kt index 9ca559ca..6050f5c1 100644 --- a/app/src/main/java/com/futo/platformplayer/views/video/FutoVideoPlayerBase.kt +++ b/app/src/main/java/com/futo/platformplayer/views/video/FutoVideoPlayerBase.kt @@ -298,6 +298,12 @@ abstract class FutoVideoPlayerBase : RelativeLayout { builder = builder.setMaxAudioBitrate(_targetTrackAudioBitrate); } + builder = if (isAudioMode) { + builder.setTrackTypeDisabled(C.TRACK_TYPE_VIDEO, true) + } else { + builder.setTrackTypeDisabled(C.TRACK_TYPE_VIDEO, false) + } + val trackSelector = exoPlayer?.player?.trackSelector; if(trackSelector != null) { trackSelector.parameters = builder.build(); @@ -737,6 +743,7 @@ abstract class FutoVideoPlayerBase : RelativeLayout { val sourceAudio = _lastAudioMediaSource; val sourceSubs = _lastSubtitleMediaSource; + updateTrackSelector() beforeSourceChanged(); -- GitLab