ExoTrackSelection, TrackSelectionpublic final class RandomTrackSelection extends BaseTrackSelection
ExoTrackSelection whose selected track is updated randomly.| Modifier and Type | Class | Description |
|---|---|---|
static class |
RandomTrackSelection.Factory |
Factory for
RandomTrackSelection instances. |
ExoTrackSelection.Definitiongroup, length, tracks| Constructor | Description |
|---|---|
RandomTrackSelection(TrackGroup group,
int... tracks) |
|
RandomTrackSelection(TrackGroup group,
int[] tracks,
long seed) |
|
RandomTrackSelection(TrackGroup group,
int[] tracks,
Random random) |
| Modifier and Type | Method | Description |
|---|---|---|
int |
getSelectedIndex() |
Returns the index of the selected track.
|
Object |
getSelectionData() |
Returns optional data associated with the current track selection.
|
int |
getSelectionReason() |
Returns the reason for the current track selection.
|
void |
updateSelectedTrack(long playbackPositionUs,
long bufferedDurationUs,
long availableDurationUs,
List<? extends MediaChunk> queue,
MediaChunkIterator[] mediaChunkIterators) |
Updates the selected track for sources that load media in discrete
MediaChunks. |
blacklist, disable, enable, equals, evaluateQueueSize, getFormat, getIndexInTrackGroup, getSelectedFormat, getSelectedIndexInTrackGroup, getTrackGroup, hashCode, indexOf, indexOf, isBlacklisted, length, onPlaybackSpeedonDiscontinuity, onPlayWhenReadyChanged, onRebuffer, shouldCancelChunkLoadpublic RandomTrackSelection(TrackGroup group, int... tracks)
group - The TrackGroup. Must not be null.tracks - The indices of the selected tracks within the TrackGroup. Must not be
null or empty. May be in any order.public RandomTrackSelection(TrackGroup group, int[] tracks, long seed)
group - The TrackGroup. Must not be null.tracks - The indices of the selected tracks within the TrackGroup. Must not be
null or empty. May be in any order.seed - A seed for the Random instance used to update the selected track.public RandomTrackSelection(TrackGroup group, int[] tracks, Random random)
group - The TrackGroup. Must not be null.tracks - The indices of the selected tracks within the TrackGroup. Must not be
null or empty. May be in any order.random - A source of random numbers.public void updateSelectedTrack(long playbackPositionUs,
long bufferedDurationUs,
long availableDurationUs,
List<? extends MediaChunk> queue,
MediaChunkIterator[] mediaChunkIterators)
ExoTrackSelectionMediaChunks.
This method will only be called when the selection is enabled.
playbackPositionUs - The current playback position in microseconds. If playback of the
period to which this track selection belongs has not yet started, the value will be the
starting position in the period minus the duration of any media in previous periods still
to be played.bufferedDurationUs - The duration of media currently buffered from the current playback
position, in microseconds. Note that the next load position can be calculated as
(playbackPositionUs + bufferedDurationUs).availableDurationUs - The duration of media available for buffering from the current
playback position, in microseconds, or C.TIME_UNSET if media can be buffered to the
end of the current period. Note that if not set to C.TIME_UNSET, the position up to
which media is available for buffering can be calculated as (playbackPositionUs +
availableDurationUs).queue - The queue of already buffered MediaChunks. Must not be modified.mediaChunkIterators - An array of MediaChunkIterators providing information about
the sequence of upcoming media chunks for each track in the selection. All iterators start
from the media chunk which will be loaded next if the respective track is selected. Note
that this information may not be available for all tracks, and so some iterators may be
empty.public int getSelectedIndex()
ExoTrackSelectionpublic int getSelectionReason()
ExoTrackSelection@Nullable public Object getSelectionData()
ExoTrackSelection