public final class RandomTrackSelection extends BaseTrackSelection
TrackSelection
whose selected track is updated randomly.Modifier and Type | Class and Description |
---|---|
static class |
RandomTrackSelection.Factory
Factory for
RandomTrackSelection instances. |
group, length, tracks
Constructor and Description |
---|
RandomTrackSelection(TrackGroup group,
int... tracks) |
RandomTrackSelection(TrackGroup group,
int[] tracks,
long seed) |
RandomTrackSelection(TrackGroup group,
int[] tracks,
java.util.Random random) |
Modifier and Type | Method and Description |
---|---|
int |
getSelectedIndex()
Returns the index of the selected track.
|
java.lang.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,
java.util.List<? extends MediaChunk> queue,
MediaChunkIterator[] mediaChunkIterators)
Updates the selected track for sources that load media in discrete
MediaChunk s. |
blacklist, disable, enable, equals, evaluateQueueSize, getFormat, getIndexInTrackGroup, getSelectedFormat, getSelectedIndexInTrackGroup, getTrackGroup, hashCode, indexOf, indexOf, isBlacklisted, length, onPlaybackSpeed
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
updateSelectedTrack
public 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, java.util.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, java.util.List<? extends MediaChunk> queue, MediaChunkIterator[] mediaChunkIterators)
TrackSelection
MediaChunk
s.
This method may 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 MediaChunk
s. Must not be modified.mediaChunkIterators
- An array of MediaChunkIterator
s 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()
TrackSelection
public int getSelectionReason()
TrackSelection
@Nullable public java.lang.Object getSelectionData()
TrackSelection