Package com.castlabs.sdk.vimond
Class VimondComponent
- java.lang.Object
-
- com.castlabs.analytics.AnalyticsSession
-
- com.castlabs.sdk.vimond.VimondComponent
-
- All Implemented Interfaces:
IAnalyticsSession
,PlayerControllerPlugin.Component
,PlayerListener
,VimondCallback
public class VimondComponent extends AnalyticsSession implements VimondCallback, PlayerListener
Main Vimond Plugin interaction point.To get an instance of the component, use the
PlayerController.getComponent(Class)
.The component can be used to register a
VimondCallback
. In addition, a new authentication token can be provided at runtime viasetToken(String)
.VimondComponent vimond = playerController.getComponent(VimondComponent.class); vimond.setRaiseErrorOnUnreachableHost(true); // Fail if host unreachable vimond.setRaiseErrorOnInvalidStatusCode(true); // Fail if bad http status code is received vimond.setCallback(new VimondCallback() {
@
Override public void onVimondResponse(int httpStatusCode,@
Nullable Map<String, List<String>> headers,@
Nullable String responseBody) { Log.d(TAG, "Vimond response (" + httpStatusCode + ") " + responseBody); } });- Since:
- 4.2.34
-
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
adErrorInternal(CastlabsPlayerException exception)
void
adSkippedInternal()
void
adStartInternal(Ad ad)
void
adStopInternal()
void
detachFromControllerInternal()
Class
id()
void
onDestroy(PlayerController playerController)
void
onDisplayChanged(DisplayInfo displayInfo, boolean canPlay)
void
onDurationChanged(long durationUs)
void
onError(CastlabsPlayerException error)
void
onExoPlayerStateChangedInternal(boolean playWhenReady, int playbackState)
void
onFatalErrorOccurred(CastlabsPlayerException error)
void
onFullyBuffered()
void
onOpenBundle(PlayerController playerController, Bundle bundle)
void
onOpenState(PlayerController playerController, PlayerConfig playerConfig)
void
onPlaybackPositionChanged(long playbackPositionMs)
void
onPlayerModelChanged()
void
onSeekCompleted()
void
onSeekRangeChanged(long startTimeMs, long endTimeMs)
void
onSeekTo(long newPosition)
void
onSpeedChanged(float speed)
void
onStateChanged(PlayerController.State state)
void
onVideoKeyStatusChanged(List<VideoTrackQuality> trackList)
void
onVideoSizeChanged(int width, int height, float pixelWidthHeightRatio)
void
onVimondResponse(int httpStatusCode, Map<String,List<String>> headers, String responseBody)
Will be called on each an every Vimond backend response, regardless of the status code.void
releaseInternal()
void
reportPlayerStateInternal(PlayerController.State state)
void
seekEndInternal()
void
seekProcessedInternal()
void
seekStartInternal(long newPosition)
void
sendErrorInternal(String code, String message, int severity)
void
setCallback(VimondCallback callback)
Set theVimondCallback
to invoke on each Vimond backend response.void
setRaiseErrorOnInvalidStatusCode(boolean value)
Whether to throw a fatal Exception if the Vimond backend answers with an invalid HTTP code (400, 401, 403).void
setRaiseErrorOnUnreachableHost(boolean value)
Whether to throw a fatal Exception if the Vimond backend is unreachable.void
setToken(String token)
Set a new token for authentication purposes.void
startInternal(PlayerController playerController, AnalyticsMetaData analyticsMetaData)
void
stopInternal()
-
Methods inherited from class com.castlabs.analytics.AnalyticsSession
adError, adSkipped, adStart, adStop, detachFromController, getEnabled, onExoPlayerStateChanged, release, reportPlayerState, seekEnd, seekProcessed, seekStart, sendError, setEnabled, start, stop
-
-
-
-
Method Detail
-
startInternal
public void startInternal(@NonNull PlayerController playerController, @NonNull AnalyticsMetaData analyticsMetaData)
-
stopInternal
public void stopInternal()
-
setCallback
public void setCallback(@Nullable VimondCallback callback)
Set theVimondCallback
to invoke on each Vimond backend response. The callback will also be invoked even if the plugin decides to shutdown playback by raising an error.- Parameters:
callback
- the callback to set
-
setToken
public void setToken(@NonNull String token)
Set a new token for authentication purposes. All network requests to Vimond backend will use the provided token.- Parameters:
token
- the token to use
-
setRaiseErrorOnUnreachableHost
public void setRaiseErrorOnUnreachableHost(boolean value)
Whether to throw a fatal Exception if the Vimond backend is unreachable. true by default. The Exception thrown will haveCastlabsPlayerException.TYPE_CSL_NETWORK_ERROR
as itstype
.- Parameters:
value
- the value
-
setRaiseErrorOnInvalidStatusCode
public void setRaiseErrorOnInvalidStatusCode(boolean value)
Whether to throw a fatal Exception if the Vimond backend answers with an invalid HTTP code (400, 401, 403). true by default. The Exception thrown will haveCastlabsPlayerException.TYPE_CSL_LIMIT_REACHED
as itstype
.- Parameters:
value
- the value
-
onVimondResponse
public void onVimondResponse(int httpStatusCode, @NonNull Map<String,List<String>> headers, @Nullable String responseBody)
Description copied from interface:VimondCallback
Will be called on each an every Vimond backend response, regardless of the status code.- Specified by:
onVimondResponse
in interfaceVimondCallback
- Parameters:
httpStatusCode
- the HTTP status code Vimond backend responded with, or -1 if couldn't get a response.headers
- response headers, if applicable.responseBody
- response body, if applicable.
-
adStartInternal
public void adStartInternal(Ad ad)
-
adStopInternal
public void adStopInternal()
-
adErrorInternal
public void adErrorInternal(CastlabsPlayerException exception)
-
adSkippedInternal
public void adSkippedInternal()
-
reportPlayerStateInternal
public void reportPlayerStateInternal(PlayerController.State state)
-
seekStartInternal
public void seekStartInternal(long newPosition)
-
seekEndInternal
public void seekEndInternal()
-
seekProcessedInternal
public void seekProcessedInternal()
-
detachFromControllerInternal
public void detachFromControllerInternal()
-
releaseInternal
public void releaseInternal()
-
onExoPlayerStateChangedInternal
public void onExoPlayerStateChangedInternal(boolean playWhenReady, int playbackState)
-
id
@NonNull public Class id()
- Specified by:
id
in interfacePlayerControllerPlugin.Component
-
onDestroy
public void onDestroy(@NonNull PlayerController playerController)
- Specified by:
onDestroy
in interfacePlayerControllerPlugin.Component
-
onOpenBundle
public void onOpenBundle(@NonNull PlayerController playerController, @NonNull Bundle bundle)
- Specified by:
onOpenBundle
in interfacePlayerControllerPlugin.Component
-
onOpenState
public void onOpenState(PlayerController playerController, PlayerConfig playerConfig)
- Specified by:
onOpenState
in interfacePlayerControllerPlugin.Component
-
onFatalErrorOccurred
public void onFatalErrorOccurred(@NonNull CastlabsPlayerException error)
- Specified by:
onFatalErrorOccurred
in interfacePlayerListener
-
onError
public void onError(@NonNull CastlabsPlayerException error)
- Specified by:
onError
in interfacePlayerListener
-
onStateChanged
public void onStateChanged(@NonNull PlayerController.State state)
- Specified by:
onStateChanged
in interfacePlayerListener
-
onSeekTo
public void onSeekTo(long newPosition)
- Specified by:
onSeekTo
in interfacePlayerListener
-
onSeekCompleted
public void onSeekCompleted()
- Specified by:
onSeekCompleted
in interfacePlayerListener
-
onVideoSizeChanged
public void onVideoSizeChanged(int width, int height, float pixelWidthHeightRatio)
- Specified by:
onVideoSizeChanged
in interfacePlayerListener
-
onSeekRangeChanged
public void onSeekRangeChanged(long startTimeMs, long endTimeMs)
- Specified by:
onSeekRangeChanged
in interfacePlayerListener
-
onPlaybackPositionChanged
public void onPlaybackPositionChanged(long playbackPositionMs)
- Specified by:
onPlaybackPositionChanged
in interfacePlayerListener
-
onDisplayChanged
public void onDisplayChanged(DisplayInfo displayInfo, boolean canPlay)
- Specified by:
onDisplayChanged
in interfacePlayerListener
-
onDurationChanged
public void onDurationChanged(long durationUs)
- Specified by:
onDurationChanged
in interfacePlayerListener
-
onSpeedChanged
public void onSpeedChanged(float speed)
- Specified by:
onSpeedChanged
in interfacePlayerListener
-
onPlayerModelChanged
public void onPlayerModelChanged()
- Specified by:
onPlayerModelChanged
in interfacePlayerListener
-
onVideoKeyStatusChanged
public void onVideoKeyStatusChanged(List<VideoTrackQuality> trackList)
- Specified by:
onVideoKeyStatusChanged
in interfacePlayerListener
-
onFullyBuffered
public void onFullyBuffered()
- Specified by:
onFullyBuffered
in interfacePlayerListener
-
-