Interface AnalyticsSession
-
- All Superinterfaces:
PlayerControllerPlugin.Component
- All Known Implementing Classes:
AnalyticsSessionProxy
public interface AnalyticsSession extends PlayerControllerPlugin.Component
Base interface for analytics plugins.- Since:
- 3.1.0
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description void
adError(CastlabsPlayerException exception)
Inform the session that an ad error occurred.void
adSkipped()
Inform the session that the ad is skipped.void
adStart(Ad ad)
Inform the session that an ad playback started.void
adStop()
Inform the session that an ad playback stopped.void
detachFromController()
Detach the Analytics session from the PlayerController.void
onExoPlayerStateChanged(boolean playWhenReady, int playbackState)
Lets the Analytics Sessions know of any state changes in ExoPlayer.void
release()
Terminate the AnalyticsSession.void
seekEnd()
Inform the session that the seeking has completed.void
seekProcessed()
Inform the session that the requested seek position of the video playback is processed.void
seekStart(long newPosition)
Inform the session that the new position of the video playback is requested.void
sendError(String code, String message, int severity)
Send an error manually.void
start(PlayerController playerController, AnalyticsMetaData analyticsMetaData)
Start the session on the given controllervoid
stop()
Stop the session.-
Methods inherited from interface com.castlabs.android.player.PlayerControllerPlugin.Component
id, onDestroy, onOpenBundle, onOpenState
-
-
-
-
Method Detail
-
start
void start(@NonNull PlayerController playerController, @NonNull AnalyticsMetaData analyticsMetaData)
Start the session on the given controller- Parameters:
playerController
- The player controlleranalyticsMetaData
- The meta-data associated with this session
-
stop
void stop()
Stop the session.
-
adStart
void adStart(Ad ad)
Inform the session that an ad playback started.- Parameters:
ad
- The ad metadata. Contains streamType (EitherSdkConsts.AD_EMBEDDED
if the ad is embedded into the content orSdkConsts.AD_SEPARATE
if the ad is played separate from the main content.), playerType (EitherSdkConsts.AD_EMBEDDED
if the ad is using the same player as the main content orSdkConsts.AD_SEPARATE
if the ad is played in a separate player and adPosition The ad position. One ofSdkConsts.AD_POSITION_PREROLL
SdkConsts.AD_POSITION_MIDROLL
, orSdkConsts.AD_POSITION_POSTROLL
-
adStop
void adStop()
Inform the session that an ad playback stopped.
-
adError
void adError(CastlabsPlayerException exception)
Inform the session that an ad error occurred.- Parameters:
exception
- The error's exception
-
adSkipped
void adSkipped()
Inform the session that the ad is skipped.
-
sendError
void sendError(String code, String message, int severity)
Send an error manually. Note that the player integration takes care of playback error occurring during playback. Use this method to send error that happen outside of the playback session.- Parameters:
code
- The error codemessage
- The error messageseverity
- The severity of the error
-
seekStart
void seekStart(long newPosition)
Inform the session that the new position of the video playback is requested.- Parameters:
newPosition
- the new position in microseconds
-
seekEnd
void seekEnd()
Inform the session that the seeking has completed.Triggered when the player is ready to continue playback by transitioning to either
PlayerController.State.Playing
orPlayerController.State.Pausing
.
-
seekProcessed
void seekProcessed()
Inform the session that the requested seek position of the video playback is processed. This is called right after the player has updated the internal playback position.
-
detachFromController
void detachFromController()
Detach the Analytics session from the PlayerController. Unregister listeners and remove any references.This method allows to unbind the AnalyticsSession from a PlayerController, to later set it to a new controller and continue with the same analytics session.
Should be called by client code after getting the AnalyticsSession via
PlayerController.getAnalyticsSession()
, and before releasing the PlayerController.You can later re-attach the AnalyticsSession to a PlayerController before
opening
it with thePlayerController.setAnalyticsSession(AnalyticsSession)
method
-
onExoPlayerStateChanged
void onExoPlayerStateChanged(boolean playWhenReady, int playbackState)
Lets the Analytics Sessions know of any state changes in ExoPlayer.This method allows any interested Analytics sessions to know of any changes in the ExoPlayer even if it doesn't correspond to any state changes in the PlayerController.
-
release
void release()
Terminate the AnalyticsSession. Although implementation is vendor-specific, this method will terminate any ongoing session as if the player itself had been destroyed. Generally, there's no need to call this manually. Unless you're detaching the session and not reusing it later.
-
-