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.
This commit is contained in:
parent
0578e7fde0
commit
4648cac9c6
@ -2196,7 +2196,7 @@ public final class Player implements PlaybackListener, Listener {
|
||||
}
|
||||
|
||||
public void useVideoAndSubtitles(final boolean videoAndSubtitlesEnabled) {
|
||||
if (playQueue == null || audioPlayerSelected()) {
|
||||
if (playQueue == null) {
|
||||
return;
|
||||
}
|
||||
|
||||
@ -2208,17 +2208,11 @@ public final class Player implements PlaybackListener, Listener {
|
||||
final SourceType sourceType = videoResolver.getStreamSourceType()
|
||||
.orElse(SourceType.VIDEO_WITH_AUDIO_OR_AUDIO_ONLY);
|
||||
|
||||
setRecovery();
|
||||
|
||||
if (playQueueManagerReloadingNeeded(sourceType, info, getVideoRendererIndex())) {
|
||||
reloadPlayQueueManager();
|
||||
}
|
||||
|
||||
setRecovery();
|
||||
|
||||
// Disable or enable video and subtitles renderers depending of the
|
||||
// videoAndSubtitlesEnabled value
|
||||
trackSelector.setParameters(trackSelector.buildUponParameters()
|
||||
.setTrackTypeDisabled(C.TRACK_TYPE_TEXT, !videoAndSubtitlesEnabled)
|
||||
.setTrackTypeDisabled(C.TRACK_TYPE_VIDEO, !videoAndSubtitlesEnabled));
|
||||
}, () -> {
|
||||
/*
|
||||
The current metadata may be null sometimes (for e.g. when using an unstable connection
|
||||
@ -2227,9 +2221,15 @@ public final class Player implements PlaybackListener, Listener {
|
||||
Reload the play queue manager in this case, which is the behavior when we don't know the
|
||||
index of the video renderer or playQueueManagerReloadingNeeded returns true
|
||||
*/
|
||||
reloadPlayQueueManager();
|
||||
setRecovery();
|
||||
reloadPlayQueueManager();
|
||||
});
|
||||
|
||||
// Disable or enable video and subtitles renderers depending of the
|
||||
// videoAndSubtitlesEnabled value
|
||||
trackSelector.setParameters(trackSelector.buildUponParameters()
|
||||
.setTrackTypeDisabled(C.TRACK_TYPE_TEXT, !videoAndSubtitlesEnabled)
|
||||
.setTrackTypeDisabled(C.TRACK_TYPE_VIDEO, !videoAndSubtitlesEnabled));
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user