PlaybackSessionManagerpublic final class DefaultPlaybackSessionManager extends Object implements PlaybackSessionManager
PlaybackSessionManager which instantiates a new session for each window in the
timeline and also for each ad within the windows.
By default, sessions are identified by Base64-encoded, URL-safe, random strings.
PlaybackSessionManager.Listener| Modifier and Type | Field | Description |
|---|---|---|
static Supplier<String> |
DEFAULT_SESSION_ID_GENERATOR |
Default generator for unique session ids that are random, Based64-encoded and URL-safe.
|
| Constructor | Description |
|---|---|
DefaultPlaybackSessionManager() |
Creates session manager with a
DEFAULT_SESSION_ID_GENERATOR to generate session ids. |
DefaultPlaybackSessionManager(Supplier<String> sessionIdGenerator) |
Creates session manager.
|
| Modifier and Type | Method | Description |
|---|---|---|
boolean |
belongsToSession(AnalyticsListener.EventTime eventTime,
String sessionId) |
Returns whether an event time belong to a session.
|
void |
finishAllSessions(AnalyticsListener.EventTime eventTime) |
Finishes all existing sessions and calls their respective
PlaybackSessionManager.Listener.onSessionFinished(EventTime, String, boolean) callback. |
String |
getSessionForMediaPeriodId(Timeline timeline,
MediaSource.MediaPeriodId mediaPeriodId) |
Returns the session identifier for the given media period id.
|
void |
setListener(PlaybackSessionManager.Listener listener) |
Sets the listener to be notified of session updates.
|
void |
updateSessions(AnalyticsListener.EventTime eventTime) |
Updates or creates sessions based on a player
AnalyticsListener.EventTime. |
void |
updateSessionsWithDiscontinuity(AnalyticsListener.EventTime eventTime,
int reason) |
Updates or creates sessions based on a position discontinuity at
AnalyticsListener.EventTime. |
void |
updateSessionsWithTimelineChange(AnalyticsListener.EventTime eventTime) |
Updates or creates sessions based on a
Timeline change at AnalyticsListener.EventTime. |
public DefaultPlaybackSessionManager()
DEFAULT_SESSION_ID_GENERATOR to generate session ids.public void setListener(PlaybackSessionManager.Listener listener)
PlaybackSessionManagersetListener in interface PlaybackSessionManagerlistener - The PlaybackSessionManager.Listener to be notified of session updates.public String getSessionForMediaPeriodId(Timeline timeline, MediaSource.MediaPeriodId mediaPeriodId)
PlaybackSessionManagerNote that this will reserve a new session identifier if it doesn't exist yet, but will not
call any PlaybackSessionManager.Listener callbacks.
getSessionForMediaPeriodId in interface PlaybackSessionManagertimeline - The timeline, mediaPeriodId is part of.mediaPeriodId - A MediaSource.MediaPeriodId.public boolean belongsToSession(AnalyticsListener.EventTime eventTime, String sessionId)
PlaybackSessionManagerbelongsToSession in interface PlaybackSessionManagereventTime - The AnalyticsListener.EventTime.sessionId - A session identifier.public void updateSessions(AnalyticsListener.EventTime eventTime)
PlaybackSessionManagerAnalyticsListener.EventTime.
Call PlaybackSessionManager.updateSessionsWithTimelineChange(EventTime) or PlaybackSessionManager.updateSessionsWithDiscontinuity(EventTime, int) if the event is a Timeline change or
a position discontinuity respectively.
updateSessions in interface PlaybackSessionManagereventTime - The AnalyticsListener.EventTime.public void updateSessionsWithTimelineChange(AnalyticsListener.EventTime eventTime)
PlaybackSessionManagerTimeline change at AnalyticsListener.EventTime.
Should be called instead of PlaybackSessionManager.updateSessions(EventTime) if a Timeline change
occurred.
updateSessionsWithTimelineChange in interface PlaybackSessionManagereventTime - The AnalyticsListener.EventTime with the timeline change.public void updateSessionsWithDiscontinuity(AnalyticsListener.EventTime eventTime, @DiscontinuityReason int reason)
PlaybackSessionManagerAnalyticsListener.EventTime.
Should be called instead of PlaybackSessionManager.updateSessions(EventTime) if a position discontinuity
occurred.
updateSessionsWithDiscontinuity in interface PlaybackSessionManagereventTime - The AnalyticsListener.EventTime of the position discontinuity.reason - The Player.DiscontinuityReason.public void finishAllSessions(AnalyticsListener.EventTime eventTime)
PlaybackSessionManagerPlaybackSessionManager.Listener.onSessionFinished(EventTime, String, boolean) callback.finishAllSessions in interface PlaybackSessionManagereventTime - The event time at which sessions are finished.