Skip to content

Commit 4648cac

Browse files
AudricVStypox
authored andcommitted
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 0578e7f commit 4648cac

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
@@ -2196,7 +2196,7 @@ private void notifyAudioTrackUpdateToListeners() {
21962196
}
21972197

21982198
public void useVideoAndSubtitles(final boolean videoAndSubtitlesEnabled) {
2199-
if (playQueue == null || audioPlayerSelected()) {
2199+
if (playQueue == null) {
22002200
return;
22012201
}
22022202

@@ -2208,17 +2208,11 @@ public void useVideoAndSubtitles(final boolean videoAndSubtitlesEnabled) {
22082208
final SourceType sourceType = videoResolver.getStreamSourceType()
22092209
.orElse(SourceType.VIDEO_WITH_AUDIO_OR_AUDIO_ONLY);
22102210

2211+
setRecovery();
2212+
22112213
if (playQueueManagerReloadingNeeded(sourceType, info, getVideoRendererIndex())) {
22122214
reloadPlayQueueManager();
22132215
}
2214-
2215-
setRecovery();
2216-
2217-
// Disable or enable video and subtitles renderers depending of the
2218-
// videoAndSubtitlesEnabled value
2219-
trackSelector.setParameters(trackSelector.buildUponParameters()
2220-
.setTrackTypeDisabled(C.TRACK_TYPE_TEXT, !videoAndSubtitlesEnabled)
2221-
.setTrackTypeDisabled(C.TRACK_TYPE_VIDEO, !videoAndSubtitlesEnabled));
22222216
}, () -> {
22232217
/*
22242218
The current metadata may be null sometimes (for e.g. when using an unstable connection
@@ -2227,9 +2221,15 @@ The current metadata may be null sometimes (for e.g. when using an unstable conn
22272221
Reload the play queue manager in this case, which is the behavior when we don't know the
22282222
index of the video renderer or playQueueManagerReloadingNeeded returns true
22292223
*/
2230-
reloadPlayQueueManager();
22312224
setRecovery();
2225+
reloadPlayQueueManager();
22322226
});
2227+
2228+
// Disable or enable video and subtitles renderers depending of the
2229+
// videoAndSubtitlesEnabled value
2230+
trackSelector.setParameters(trackSelector.buildUponParameters()
2231+
.setTrackTypeDisabled(C.TRACK_TYPE_TEXT, !videoAndSubtitlesEnabled)
2232+
.setTrackTypeDisabled(C.TRACK_TYPE_VIDEO, !videoAndSubtitlesEnabled));
22332233
}
22342234

22352235
/**

0 commit comments

Comments
 (0)