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. 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].