Package com.castlabs.sdk.vimond
Class VimondComponent
- java.lang.Object
-
- com.castlabs.sdk.vimond.VimondComponent
-
- All Implemented Interfaces:
AnalyticsSession
,PlayerControllerPlugin.Component
,PlayerListener
,VimondCallback
public class VimondComponent extends Object implements AnalyticsSession, 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
adError(CastlabsPlayerException exception)
void
adSkipped()
void
adStart(Ad ad)
void
adStop()
void
detachFromController()
Class
id()
void
onDestroy(PlayerController playerController)
void
onDisplayChanged(DisplayInfo displayInfo, boolean canPlay)
void
onDurationChanged(long durationUs)
void
onError(CastlabsPlayerException error)
void
onExoPlayerStateChanged(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
release()
void
seekEnd()
void
seekProcessed()
void
seekStart(long newPosition)
void
sendError(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
start(PlayerController playerController, AnalyticsMetaData analyticsMetaData)
void
stop()
-
-
-
Method Detail
-
start
public void start(@NonNull PlayerController playerController, @NonNull AnalyticsMetaData analyticsMetaData)
- Specified by:
start
in interfaceAnalyticsSession
-
stop
public void stop()
- Specified by:
stop
in interfaceAnalyticsSession
-
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.
-
adStart
public void adStart(Ad ad)
- Specified by:
adStart
in interfaceAnalyticsSession
-
adStop
public void adStop()
- Specified by:
adStop
in interfaceAnalyticsSession
-
adError
public void adError(CastlabsPlayerException exception)
- Specified by:
adError
in interfaceAnalyticsSession
-
adSkipped
public void adSkipped()
- Specified by:
adSkipped
in interfaceAnalyticsSession
-
sendError
public void sendError(String code, String message, int severity)
- Specified by:
sendError
in interfaceAnalyticsSession
-
seekStart
public void seekStart(long newPosition)
- Specified by:
seekStart
in interfaceAnalyticsSession
-
seekEnd
public void seekEnd()
- Specified by:
seekEnd
in interfaceAnalyticsSession
-
seekProcessed
public void seekProcessed()
- Specified by:
seekProcessed
in interfaceAnalyticsSession
-
detachFromController
public void detachFromController()
- Specified by:
detachFromController
in interfaceAnalyticsSession
-
release
public void release()
- Specified by:
release
in interfaceAnalyticsSession
-
onExoPlayerStateChanged
public void onExoPlayerStateChanged(boolean playWhenReady, int playbackState)
- Specified by:
onExoPlayerStateChanged
in interfaceAnalyticsSession
-
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
-
-