Package com.castlabs.sdk.youbora

# Class YouboraPlugin

java.lang.Object
com.castlabs.android.Plugin
com.castlabs.sdk.youbora.YouboraPlugin

public class YouboraPlugin extends Plugin
This plugin integrates Youbora Analytics with the Castlabs Player SDK.

Labels reported for disabled subtitle/audio tracks can be customized via `PlayerSDK.ANALYTICS_SETTINGS`.

You can enable and register the plugin before you initialize the SDK:

      public class MyApp extends Application {
         @Override
          public void onCreate() {
              super.onCreate();

              YouboraPlugin youbora = new YouboraPlugin(...);
              PlayerSDK.register(youbora);
              PlayerSDK.init(getApplicationContext());
          }
     }

Since:
  3.1.5

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `static boolean`
  `ENABLE_OFFLINE_ANALYTICS`
  Whether to send offline analytics or not.

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `YouboraPlugin(com.npaw.NpawPlugin npawPlugin)`
  Create a new instance of this plugin using the default configuration.
  `YouboraPlugin(String systemId)`
  Create a new instance of this plugin using the default configuration.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `static String`
  `buildRenditionString(int width, int height, double bitrate)`
  Builds a string that represents the rendition.
  `static AnalyticsMetaData`
  `createMetadata(boolean live, String assetId, com.npaw.core.options.AnalyticsOptions analyticsOptions)`
  Create an `AnalyticsMetaData` object from a Youbora `AnalyticsOptions` object.
  `static AnalyticsMetaData`
  `createMetadata(AnalyticsMetaData analyticsMetaData, com.npaw.core.options.AnalyticsOptions analyticsOptions)`
  Update provided analytics metadata with extra values
  `String`
  `getId()`
  `void`
  `init(Context context)`
  `void`
  `reportWarnings(boolean reportWarnings)`
  Whether to report the SDK Warnings as Youbora non-fatal errors.
  `void`
  `setEnabled(boolean enabled)`
  Whether to enable this Plugin or not

  ### Methods inherited from class com.castlabs.android.Plugin

  `onRemotePlay`

  ### Methods inherited from class java.lang.Object

  `equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## Field Details

  - ### ENABLE_OFFLINE_ANALYTICS

    public static boolean ENABLE_OFFLINE_ANALYTICS
    Whether to send offline analytics or not. If disabled, current stored offline sessions sending through `flushYouboraEvents(Context, String, NpawPlugin)` will also be blocked.

- ## Constructor Details

  - ### YouboraPlugin

    public YouboraPlugin(@NonNull String systemId)
    Create a new instance of this plugin using the default configuration.
    Parameters:
      `systemId` - The Youbora system id

  - ### YouboraPlugin

    public YouboraPlugin(@NonNull com.npaw.NpawPlugin npawPlugin)
    Create a new instance of this plugin using the default configuration.
    Parameters:
      `npawPlugin` - The `NpawPlugin` instance to use

- ## Method Details

  - ### init

    public void init(Context context)
    Overrides:
      `init` in class `Plugin`

  - ### reportWarnings

    public void reportWarnings(boolean reportWarnings)
    Whether to report the SDK Warnings as Youbora non-fatal errors. If disabled, fatal errors will still be reported. Default: false
    Parameters:
      `reportWarnings` - Whether to report the SDK Warnings as Youbora non-fatal errors

  - ### getId

    @NonNull public String getId()
    Specified by:
      `getId` in class `Plugin`

  - ### setEnabled

    public void setEnabled(boolean enabled)
    Whether to enable this Plugin or not
    Parameters:
      `enabled` - enable the plugin or not

  - ### createMetadata

    public static AnalyticsMetaData createMetadata(boolean live, @NonNull String assetId, @Nullable com.npaw.core.options.AnalyticsOptions analyticsOptions)
    Create an `AnalyticsMetaData` object from a Youbora `AnalyticsOptions` object.
    Parameters:
      `live` - whether the asset is a live stream or not
      `assetId` - unique asset identifier
      `analyticsOptions` - instance of a pre-configured `AnalyticsOptions` object.
    Returns:
      instance of AnalyticsMetaData

  - ### createMetadata

    public static AnalyticsMetaData createMetadata(@NonNull AnalyticsMetaData analyticsMetaData, @Nullable com.npaw.core.options.AnalyticsOptions analyticsOptions)
    Update provided analytics metadata with extra values
    Parameters:
      `analyticsMetaData` - Initial metadata to update with extra values
      `analyticsOptions` - instance of a pre-configured `AnalyticsOptions` object.
    Returns:
      instance of AnalyticsMetaData

  - ### buildRenditionString

    @NonNull public static String buildRenditionString(int width, int height, double bitrate)
    Builds a string that represents the rendition.

    The returned string will have the following format: [width]x[height]@[bitrate]. If either the width or height are < 1, only the bitrate will be returned. If bitrate is < 1, only the dimensions will be returned. If bitrate is < 1, and there are no dimensions, an empty string will be returned. The bitrate will also have one of the following suffixes depending on its magnitude: bps, Kbps, Mbps

    Parameters:
      `width` - width of the asset.
      `height` - height of the asset.
      `bitrate` - bitrate(in the manifest) of the asset.
    Returns:
      A string with the following format: [width]x[height]@[bitrate].