Skip to content

Commit ef47d6a

Browse files
committed
Allow changing video and text tracks state without stream info
This allows disabling these track types when stream info has been not loaded while the ExoPlayer instance is. It is now possible to do so with the background player, in order to disable fetching video and text tracks for manifest sources, especially used for livestreams. Also set the recovery first before reloading play queue manager in the useVideoAndSubtitles method of the Player class.
1 parent e4a3185 commit ef47d6a

1 file changed

Lines changed: 10 additions & 10 deletions

File tree

app/src/main/java/org/schabi/newpipe/player/Player.java

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -2096,7 +2096,7 @@ private void notifyAudioTrackUpdateToListeners() {
20962096
}
20972097

20982098
public void useVideoAndSubtitles(final boolean videoAndSubtitlesEnabled) {
2099-
if (playQueue == null || audioPlayerSelected()) {
2099+
if (playQueue == null) {
21002100
return;
21012101
}
21022102

@@ -2108,17 +2108,11 @@ public void useVideoAndSubtitles(final boolean videoAndSubtitlesEnabled) {
21082108
final SourceType sourceType = videoResolver.getStreamSourceType()
21092109
.orElse(SourceType.VIDEO_WITH_AUDIO_OR_AUDIO_ONLY);
21102110

2111+
setRecovery();
2112+
21112113
if (playQueueManagerReloadingNeeded(sourceType, info, getVideoRendererIndex())) {
21122114
reloadPlayQueueManager();
21132115
}
2114-
2115-
setRecovery();
2116-
2117-
// Disable or enable video and subtitles renderers depending of the
2118-
// videoAndSubtitlesEnabled value
2119-
trackSelector.setParameters(trackSelector.buildUponParameters()
2120-
.setTrackTypeDisabled(C.TRACK_TYPE_TEXT, !videoAndSubtitlesEnabled)
2121-
.setTrackTypeDisabled(C.TRACK_TYPE_VIDEO, !videoAndSubtitlesEnabled));
21222116
}, () -> {
21232117
/*
21242118
The current metadata may be null sometimes (for e.g. when using an unstable connection
@@ -2127,9 +2121,15 @@ The current metadata may be null sometimes (for e.g. when using an unstable conn
21272121
Reload the play queue manager in this case, which is the behavior when we don't know the
21282122
index of the video renderer or playQueueManagerReloadingNeeded returns true
21292123
*/
2130-
reloadPlayQueueManager();
21312124
setRecovery();
2125+
reloadPlayQueueManager();
21322126
});
2127+
2128+
// Disable or enable video and subtitles renderers depending of the
2129+
// videoAndSubtitlesEnabled value
2130+
trackSelector.setParameters(trackSelector.buildUponParameters()
2131+
.setTrackTypeDisabled(C.TRACK_TYPE_TEXT, !videoAndSubtitlesEnabled)
2132+
.setTrackTypeDisabled(C.TRACK_TYPE_VIDEO, !videoAndSubtitlesEnabled));
21332133
}
21342134

21352135
/**

0 commit comments

Comments
 (0)