Class FakeTimeline
- java.lang.Object
-
- com.google.android.exoplayer2.Timeline
-
- com.google.android.exoplayer2.testutil.FakeTimeline
-
- All Implemented Interfaces:
Bundleable
public final class FakeTimeline extends Timeline
FakeTimeline
which can be setup to return customFakeTimeline.TimelineWindowDefinition
s.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
FakeTimeline.TimelineWindowDefinition
Definition used to define aFakeTimeline
.-
Nested classes/interfaces inherited from class com.google.android.exoplayer2.Timeline
Timeline.Period, Timeline.RemotableTimeline, Timeline.Window
-
Nested classes/interfaces inherited from interface com.google.android.exoplayer2.Bundleable
Bundleable.Creator<T extends Bundleable>
-
-
Field Summary
Fields Modifier and Type Field Description static MediaItem
FAKE_MEDIA_ITEM
The fake media item used by the fake timeline.
-
Constructor Summary
Constructors Constructor Description FakeTimeline()
Create a fake timeline with one seekable, non-dynamic window with one period and a duration ofFakeTimeline.TimelineWindowDefinition.DEFAULT_WINDOW_DURATION_US
.FakeTimeline(int windowCount, Object... manifests)
Creates a fake timeline with the given number of seekable, non-dynamic windows with one period with a duration ofFakeTimeline.TimelineWindowDefinition.DEFAULT_WINDOW_DURATION_US
each.FakeTimeline(FakeTimeline.TimelineWindowDefinition... windowDefinitions)
Creates a fake timeline with the given window definitions.FakeTimeline(Object[] manifests, ShuffleOrder shuffleOrder, FakeTimeline.TimelineWindowDefinition... windowDefinitions)
Creates a fake timeline with the given window definitions andShuffleOrder
.FakeTimeline(Object[] manifests, FakeTimeline.TimelineWindowDefinition... windowDefinitions)
Creates a fake timeline with the given window definitions.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static AdPlaybackState
createAdPlaybackState(int adsPerAdGroup, long... adGroupTimesUs)
Returns an ad playback state with the specified number of ads in each of the specified ad groups, each ten seconds long.static FakeTimeline
createMultiPeriodAdTimeline(Object windowId, int numberOfPlayedAds, boolean... isAdPeriodFlags)
Creates a multi-period timeline with ad and content periods specified by the flags passed as var-arg arguments.ImmutableMap<Object,AdPlaybackState>
getAdPlaybackStates(int windowIndex)
Returns a map of ad playback states keyed by the period UID.int
getFirstWindowIndex(boolean shuffleModeEnabled)
Returns the index of the first window in the playback order depending on whether shuffling is enabled.int
getIndexOfPeriod(Object uid)
Returns the index of the period identified by its uniqueTimeline.Period.uid
, orC.INDEX_UNSET
if the period is not in the timeline.int
getLastWindowIndex(boolean shuffleModeEnabled)
Returns the index of the last window in the playback order depending on whether shuffling is enabled.int
getNextWindowIndex(int windowIndex, @com.google.android.exoplayer2.Player.RepeatMode int repeatMode, boolean shuffleModeEnabled)
Returns the index of the window after the window at indexwindowIndex
depending on therepeatMode
and whether shuffling is enabled.Timeline.Period
getPeriod(int periodIndex, Timeline.Period period, boolean setIds)
Populates aTimeline.Period
with data for the period at the specified index.int
getPeriodCount()
Returns the number of periods in the timeline.int
getPreviousWindowIndex(int windowIndex, @com.google.android.exoplayer2.Player.RepeatMode int repeatMode, boolean shuffleModeEnabled)
Returns the index of the window before the window at indexwindowIndex
depending on therepeatMode
and whether shuffling is enabled.Object
getUidOfPeriod(int periodIndex)
Returns the unique id of the period identified by its index in the timeline.Timeline.Window
getWindow(int windowIndex, Timeline.Window window, long defaultPositionProjectionUs)
Populates aTimeline.Window
with data for the window at the specified index.int
getWindowCount()
Returns the number of windows in the timeline.-
Methods inherited from class com.google.android.exoplayer2.Timeline
equals, getNextPeriodIndex, getPeriod, getPeriodByUid, getPeriodPosition, getPeriodPosition, getPeriodPositionUs, getPeriodPositionUs, getWindow, hashCode, isEmpty, isLastPeriod, toBundle, toBundleWithOneWindowOnly
-
-
-
-
Field Detail
-
FAKE_MEDIA_ITEM
public static final MediaItem FAKE_MEDIA_ITEM
The fake media item used by the fake timeline.
-
-
Constructor Detail
-
FakeTimeline
public FakeTimeline()
Create a fake timeline with one seekable, non-dynamic window with one period and a duration ofFakeTimeline.TimelineWindowDefinition.DEFAULT_WINDOW_DURATION_US
.
-
FakeTimeline
public FakeTimeline(int windowCount, Object... manifests)
Creates a fake timeline with the given number of seekable, non-dynamic windows with one period with a duration ofFakeTimeline.TimelineWindowDefinition.DEFAULT_WINDOW_DURATION_US
each.- Parameters:
windowCount
- The number of windows.manifests
- The manifests of the windows.
-
FakeTimeline
public FakeTimeline(FakeTimeline.TimelineWindowDefinition... windowDefinitions)
Creates a fake timeline with the given window definitions.- Parameters:
windowDefinitions
- A list ofFakeTimeline.TimelineWindowDefinition
s.
-
FakeTimeline
public FakeTimeline(Object[] manifests, FakeTimeline.TimelineWindowDefinition... windowDefinitions)
Creates a fake timeline with the given window definitions.- Parameters:
manifests
- The manifests of the windows.windowDefinitions
- A list ofFakeTimeline.TimelineWindowDefinition
s.
-
FakeTimeline
public FakeTimeline(Object[] manifests, ShuffleOrder shuffleOrder, FakeTimeline.TimelineWindowDefinition... windowDefinitions)
Creates a fake timeline with the given window definitions andShuffleOrder
.- Parameters:
manifests
- The manifests of the windows.shuffleOrder
- A shuffle ordering for the windows.windowDefinitions
- A list ofFakeTimeline.TimelineWindowDefinition
s.
-
-
Method Detail
-
createAdPlaybackState
public static AdPlaybackState createAdPlaybackState(int adsPerAdGroup, long... adGroupTimesUs)
Returns an ad playback state with the specified number of ads in each of the specified ad groups, each ten seconds long.- Parameters:
adsPerAdGroup
- The number of ads per ad group.adGroupTimesUs
- The times of ad groups, in microseconds.- Returns:
- The ad playback state.
-
createMultiPeriodAdTimeline
public static FakeTimeline createMultiPeriodAdTimeline(Object windowId, int numberOfPlayedAds, boolean... isAdPeriodFlags)
Creates a multi-period timeline with ad and content periods specified by the flags passed as var-arg arguments.Period uid end up being a
new Pair<>(windowId, periodIndex)
.- Parameters:
windowId
- The window ID.numberOfPlayedAds
- The number of ads that should be marked as played.isAdPeriodFlags
- A value of true indicates an ad period. A value of false indicated a content period.- Returns:
- A timeline with a single window with as many periods as var-arg arguments.
-
getWindowCount
public int getWindowCount()
Description copied from class:Timeline
Returns the number of windows in the timeline.- Specified by:
getWindowCount
in classTimeline
-
getNextWindowIndex
public int getNextWindowIndex(int windowIndex, @RepeatMode @com.google.android.exoplayer2.Player.RepeatMode int repeatMode, boolean shuffleModeEnabled)
Description copied from class:Timeline
Returns the index of the window after the window at indexwindowIndex
depending on therepeatMode
and whether shuffling is enabled.- Overrides:
getNextWindowIndex
in classTimeline
- Parameters:
windowIndex
- Index of a window in the timeline.repeatMode
- A repeat mode.shuffleModeEnabled
- Whether shuffling is enabled.- Returns:
- The index of the next window, or
C.INDEX_UNSET
if this is the last window.
-
getPreviousWindowIndex
public int getPreviousWindowIndex(int windowIndex, @RepeatMode @com.google.android.exoplayer2.Player.RepeatMode int repeatMode, boolean shuffleModeEnabled)
Description copied from class:Timeline
Returns the index of the window before the window at indexwindowIndex
depending on therepeatMode
and whether shuffling is enabled.- Overrides:
getPreviousWindowIndex
in classTimeline
- Parameters:
windowIndex
- Index of a window in the timeline.repeatMode
- A repeat mode.shuffleModeEnabled
- Whether shuffling is enabled.- Returns:
- The index of the previous window, or
C.INDEX_UNSET
if this is the first window.
-
getLastWindowIndex
public int getLastWindowIndex(boolean shuffleModeEnabled)
Description copied from class:Timeline
Returns the index of the last window in the playback order depending on whether shuffling is enabled.- Overrides:
getLastWindowIndex
in classTimeline
- Parameters:
shuffleModeEnabled
- Whether shuffling is enabled.- Returns:
- The index of the last window in the playback order, or
C.INDEX_UNSET
if the timeline is empty.
-
getFirstWindowIndex
public int getFirstWindowIndex(boolean shuffleModeEnabled)
Description copied from class:Timeline
Returns the index of the first window in the playback order depending on whether shuffling is enabled.- Overrides:
getFirstWindowIndex
in classTimeline
- Parameters:
shuffleModeEnabled
- Whether shuffling is enabled.- Returns:
- The index of the first window in the playback order, or
C.INDEX_UNSET
if the timeline is empty.
-
getWindow
public Timeline.Window getWindow(int windowIndex, Timeline.Window window, long defaultPositionProjectionUs)
Description copied from class:Timeline
Populates aTimeline.Window
with data for the window at the specified index.- Specified by:
getWindow
in classTimeline
- Parameters:
windowIndex
- The index of the window.window
- TheTimeline.Window
to populate. Must not be null.defaultPositionProjectionUs
- A duration into the future that the populated window's default start position should be projected.- Returns:
- The populated
Timeline.Window
, for convenience.
-
getPeriodCount
public int getPeriodCount()
Description copied from class:Timeline
Returns the number of periods in the timeline.- Specified by:
getPeriodCount
in classTimeline
-
getPeriod
public Timeline.Period getPeriod(int periodIndex, Timeline.Period period, boolean setIds)
Description copied from class:Timeline
Populates aTimeline.Period
with data for the period at the specified index.- Specified by:
getPeriod
in classTimeline
- Parameters:
periodIndex
- The index of the period.period
- TheTimeline.Period
to populate. Must not be null.setIds
- WhetherTimeline.Period.id
andTimeline.Period.uid
should be populated. If false, the fields will be set to null. The caller should pass false for efficiency reasons unless the fields are required.- Returns:
- The populated
Timeline.Period
, for convenience.
-
getIndexOfPeriod
public int getIndexOfPeriod(Object uid)
Description copied from class:Timeline
Returns the index of the period identified by its uniqueTimeline.Period.uid
, orC.INDEX_UNSET
if the period is not in the timeline.- Specified by:
getIndexOfPeriod
in classTimeline
- Parameters:
uid
- A unique identifier for a period.- Returns:
- The index of the period, or
C.INDEX_UNSET
if the period was not found.
-
getUidOfPeriod
public Object getUidOfPeriod(int periodIndex)
Description copied from class:Timeline
Returns the unique id of the period identified by its index in the timeline.- Specified by:
getUidOfPeriod
in classTimeline
- Parameters:
periodIndex
- The index of the period.- Returns:
- The unique id of the period.
-
getAdPlaybackStates
public ImmutableMap<Object,AdPlaybackState> getAdPlaybackStates(int windowIndex)
Returns a map of ad playback states keyed by the period UID.- Parameters:
windowIndex
- The window index of the window to get the map of ad playback states from.- Returns:
- The map of
ad playback states
.
-
-