public static final class Timeline.Window extends Object
Timeline
. A window usually corresponds to one
playlist item and defines a region of media currently available for playback along with
additional information such as whether seeking is supported within the window. The figure below
shows some of the information defined by a window, as well as how this information relates to
corresponding Periods
in the timeline.
Modifier and Type | Field | Description |
---|---|---|
long |
defaultPositionUs |
The default position relative to the start of the window at which to begin playback, in
microseconds.
|
long |
durationUs |
The duration of this window in microseconds, or
C.TIME_UNSET if unknown. |
long |
elapsedRealtimeEpochOffsetMs |
The offset between
SystemClock.elapsedRealtime() and the time since the Unix epoch
according to the clock of the media origin server, or C.TIME_UNSET if unknown or not
applicable. |
int |
firstPeriodIndex |
The index of the first period that belongs to this window.
|
boolean |
isDynamic |
Whether this window may change when the timeline is updated.
|
boolean |
isLive |
Deprecated.
Use
isLive() instead. |
boolean |
isPlaceholder |
Whether this window contains placeholder information because the real information has yet to
be loaded.
|
boolean |
isSeekable |
Whether it's possible to seek within this window.
|
int |
lastPeriodIndex |
The index of the last period that belongs to this window.
|
MediaItem.LiveConfiguration |
liveConfiguration |
The
MediaItem.LiveConfiguration that is used or null if isLive() returns
false. |
Object |
manifest |
The manifest of the window.
|
MediaItem |
mediaItem |
The
MediaItem associated to the window. |
long |
positionInFirstPeriodUs |
The position of the start of this window relative to the start of the first period belonging
to it, in microseconds.
|
long |
presentationStartTimeMs |
The start time of the presentation to which this window belongs in milliseconds since the
Unix epoch, or
C.TIME_UNSET if unknown or not applicable. |
static Object |
SINGLE_WINDOW_UID |
|
Object |
tag |
Deprecated.
Use
mediaItem instead. |
Object |
uid |
A unique identifier for the window.
|
long |
windowStartTimeMs |
The window's start time in milliseconds since the Unix epoch, or
C.TIME_UNSET if
unknown or not applicable. |
Constructor | Description |
---|---|
Window() |
Creates window.
|
Modifier and Type | Method | Description |
---|---|---|
boolean |
equals(Object obj) |
|
long |
getCurrentUnixTimeMs() |
Returns the current time in milliseconds since the Unix epoch.
|
long |
getDefaultPositionMs() |
Returns the default position relative to the start of the window at which to begin playback,
in milliseconds.
|
long |
getDefaultPositionUs() |
Returns the default position relative to the start of the window at which to begin playback,
in microseconds.
|
long |
getDurationMs() |
Returns the duration of the window in milliseconds, or
C.TIME_UNSET if unknown. |
long |
getDurationUs() |
Returns the duration of this window in microseconds, or
C.TIME_UNSET if unknown. |
long |
getPositionInFirstPeriodMs() |
Returns the position of the start of this window relative to the start of the first period
belonging to it, in milliseconds.
|
long |
getPositionInFirstPeriodUs() |
Returns the position of the start of this window relative to the start of the first period
belonging to it, in microseconds.
|
int |
hashCode() |
|
boolean |
isLive() |
Returns whether this is a live stream.
|
Timeline.Window |
set(Object uid,
MediaItem mediaItem,
Object manifest,
long presentationStartTimeMs,
long windowStartTimeMs,
long elapsedRealtimeEpochOffsetMs,
boolean isSeekable,
boolean isDynamic,
MediaItem.LiveConfiguration liveConfiguration,
long defaultPositionUs,
long durationUs,
int firstPeriodIndex,
int lastPeriodIndex,
long positionInFirstPeriodUs) |
Sets the data held by this window.
|
public static final Object SINGLE_WINDOW_UID
public Object uid
Timelines
must use SINGLE_WINDOW_UID
.@Deprecated @Nullable public Object tag
mediaItem
instead.public MediaItem mediaItem
MediaItem
associated to the window. Not necessarily unique.@Nullable public Object manifest
null
.public long presentationStartTimeMs
C.TIME_UNSET
if unknown or not applicable. For informational purposes
only.public long windowStartTimeMs
C.TIME_UNSET
if
unknown or not applicable.public long elapsedRealtimeEpochOffsetMs
SystemClock.elapsedRealtime()
and the time since the Unix epoch
according to the clock of the media origin server, or C.TIME_UNSET
if unknown or not
applicable.
Note that the current Unix time can be retrieved using getCurrentUnixTimeMs()
and
is calculated as SystemClock.elapsedRealtime() + elapsedRealtimeEpochOffsetMs
.
public boolean isSeekable
public boolean isDynamic
@Deprecated public boolean isLive
isLive()
instead.@Nullable public MediaItem.LiveConfiguration liveConfiguration
MediaItem.LiveConfiguration
that is used or null if isLive()
returns
false.public boolean isPlaceholder
public int firstPeriodIndex
public int lastPeriodIndex
public long defaultPositionUs
C.TIME_UNSET
if and only if the window was populated with a
non-zero default position projection, and if the specified projection cannot be performed
whilst remaining within the bounds of the window.public long durationUs
C.TIME_UNSET
if unknown.public long positionInFirstPeriodUs
public Timeline.Window set(Object uid, @Nullable MediaItem mediaItem, @Nullable Object manifest, long presentationStartTimeMs, long windowStartTimeMs, long elapsedRealtimeEpochOffsetMs, boolean isSeekable, boolean isDynamic, @Nullable MediaItem.LiveConfiguration liveConfiguration, long defaultPositionUs, long durationUs, int firstPeriodIndex, int lastPeriodIndex, long positionInFirstPeriodUs)
public long getDefaultPositionMs()
C.TIME_UNSET
if and only if the window was populated with a
non-zero default position projection, and if the specified projection cannot be performed
whilst remaining within the bounds of the window.public long getDefaultPositionUs()
C.TIME_UNSET
if and only if the window was populated with a
non-zero default position projection, and if the specified projection cannot be performed
whilst remaining within the bounds of the window.public long getDurationMs()
C.TIME_UNSET
if unknown.public long getDurationUs()
C.TIME_UNSET
if unknown.public long getPositionInFirstPeriodMs()
public long getPositionInFirstPeriodUs()
public long getCurrentUnixTimeMs()
This method applies known corrections
made available
by the media such that this time corresponds to the clock of the media origin server.
public boolean isLive()