Merge branch 'fix-background-playback' into 'master'

Background playback support for HLS and DASH

See merge request videostreaming/grayjay!80
This commit is contained in:
Kelvin 2025-02-10 18:48:05 +00:00
commit ebb7beda8c
2 changed files with 18 additions and 13 deletions

View File

@ -869,14 +869,12 @@ class VideoDetailView : ConstraintLayout {
} }
_slideUpOverlay?.hide(); _slideUpOverlay?.hide();
} else null, } else null,
if(!isLimitedVersion) 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) {
RoundButton(context, R.drawable.ic_screen_share, context.getString(R.string.background), TAG_BACKGROUND) {
if (!allowBackground) { if (!allowBackground) {
_player.switchToAudioMode(); _player.switchToAudioMode();
allowBackground = true; allowBackground = true;
it.text.text = resources.getString(R.string.background_revert); it.text.text = resources.getString(R.string.background_revert);
} } else {
else {
_player.switchToVideoMode(); _player.switchToVideoMode();
allowBackground = false; allowBackground = false;
it.text.text = resources.getString(R.string.background); it.text.text = resources.getString(R.string.background);

View File

@ -300,6 +300,12 @@ abstract class FutoVideoPlayerBase : RelativeLayout {
builder = builder.setMaxAudioBitrate(_targetTrackAudioBitrate); 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; val trackSelector = exoPlayer?.player?.trackSelector;
if(trackSelector != null) { if(trackSelector != null) {
trackSelector.parameters = builder.build(); trackSelector.parameters = builder.build();
@ -739,6 +745,7 @@ abstract class FutoVideoPlayerBase : RelativeLayout {
val sourceAudio = _lastAudioMediaSource; val sourceAudio = _lastAudioMediaSource;
val sourceSubs = _lastSubtitleMediaSource; val sourceSubs = _lastSubtitleMediaSource;
updateTrackSelector()
beforeSourceChanged(); beforeSourceChanged();