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 via setToken(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 Details

    • startInternal

      public void startInternal(@NonNull PlayerController playerController, @NonNull AnalyticsMetaData analyticsMetaData)
    • stopInternal

      public void stopInternal()
    • setCallback

      public void setCallback(@Nullable VimondCallback callback)
      Set the VimondCallback 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 have CastlabsPlayerException.TYPE_CSL_NETWORK_ERROR as its type.
      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 have CastlabsPlayerException.TYPE_CSL_LIMIT_REACHED as its type.
      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 interface VimondCallback
      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.
    • adWillStartInternal

      public void adWillStartInternal(Ad ad)
    • adStartInternal

      public void adStartInternal(Ad ad)
    • adStopInternal

      public void adStopInternal()
    • adErrorInternal

      public void adErrorInternal(Ad ad, CastlabsPlayerException exception)
    • adSkippedInternal

      public void adSkippedInternal()
    • reportPlayerStateInternal

      public void reportPlayerStateInternal(PlayerController.State state)
    • sendErrorInternal

      public void sendErrorInternal(String code, String message, int severity)
    • 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 interface PlayerControllerPlugin.Component
    • onDestroy

      public void onDestroy(@NonNull PlayerController playerController)
      Specified by:
      onDestroy in interface PlayerControllerPlugin.Component
    • onOpenBundle

      public void onOpenBundle(@NonNull PlayerController playerController, @NonNull Bundle bundle)
      Specified by:
      onOpenBundle in interface PlayerControllerPlugin.Component
    • onOpenState

      public void onOpenState(PlayerController playerController, PlayerConfig playerConfig)
      Specified by:
      onOpenState in interface PlayerControllerPlugin.Component
    • onFatalErrorOccurred

      public void onFatalErrorOccurred(@NonNull CastlabsPlayerException error)
      Specified by:
      onFatalErrorOccurred in interface PlayerListener
    • onError

      public void onError(@NonNull CastlabsPlayerException error)
      Specified by:
      onError in interface PlayerListener
    • onStateChanged

      public void onStateChanged(@NonNull PlayerController.State state)
      Specified by:
      onStateChanged in interface PlayerListener
    • onSeekTo

      public void onSeekTo(long newPosition)
      Specified by:
      onSeekTo in interface PlayerListener
    • onSeekCompleted

      public void onSeekCompleted()
      Specified by:
      onSeekCompleted in interface PlayerListener
    • onVideoSizeChanged

      public void onVideoSizeChanged(int width, int height, float pixelWidthHeightRatio)
      Specified by:
      onVideoSizeChanged in interface PlayerListener
    • onSeekRangeChanged

      public void onSeekRangeChanged(long startTimeMs, long endTimeMs)
      Specified by:
      onSeekRangeChanged in interface PlayerListener
    • onPlaybackPositionChanged

      public void onPlaybackPositionChanged(long playbackPositionMs)
      Specified by:
      onPlaybackPositionChanged in interface PlayerListener
    • onDisplayChanged

      public void onDisplayChanged(DisplayInfo displayInfo, boolean canPlay)
      Specified by:
      onDisplayChanged in interface PlayerListener
    • onDurationChanged

      public void onDurationChanged(long durationUs)
      Specified by:
      onDurationChanged in interface PlayerListener
    • onSpeedChanged

      public void onSpeedChanged(float speed)
      Specified by:
      onSpeedChanged in interface PlayerListener
    • onPlayerModelChanged

      public void onPlayerModelChanged()
      Specified by:
      onPlayerModelChanged in interface PlayerListener
    • onVideoKeyStatusChanged

      public void onVideoKeyStatusChanged(List<VideoTrackQuality> trackList)
      Specified by:
      onVideoKeyStatusChanged in interface PlayerListener
    • onFullyBuffered

      public void onFullyBuffered()
      Specified by:
      onFullyBuffered in interface PlayerListener