Package com.castlabs.android.player

# Class HlsPlayerPlugin

java.lang.Object
com.castlabs.android.player.HlsPlayerPlugin

All Implemented Interfaces:
  `PlayerPlugin`

public final class HlsPlayerPlugin extends Object implements PlayerPlugin
Plugin that provides HLS playback functionality. This plugin implements the PlayerPlugin interface to handle HLS content playback, including support for HLS interstitials and DRM.

- ## Nested Class Summary

  ## Nested classes/interfaces inherited from interface com.castlabs.android.player.PlayerPlugin

  `PlayerPlugin.DrmInitDataProvider<T extends com.google.android.exoplayer2.offline.FilterableManifest>`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `HlsPlayerPlugin()`
  Default constructor for HlsPlayerPlugin.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `PlayerPlugin.DrmInitDataProvider`
  `createDrmInitDataProvider(ManifestModifier manifestModifier)`
  Creates a `PlayerPlugin.DrmInitDataProvider` instance.
  `com.google.android.exoplayer2.source.MediaSource`
  `createMediaSource(PlayerConfig config, boolean attachInitialPositionProvider, PlayerController playerController)`
  Create the content media source based on the supplied path and the `PlayerController`
  `List<TrackRendererPlugin.TrackRendererContainer>`
  `createRendererContainers(PlayerController playerController, DrmConfiguration drmConfiguration)`
  Create the list of renderer containers based on the supplied `DrmConfiguration` and `PlayerController`
  `com.google.android.exoplayer2.RendererCapabilities[]`
  `getRendererCapabilities(Context context, DrmConfiguration drmConfiguration)`
  Retrieve array of supported RendererCapabilities.
  `boolean`
  `isFormatSupported(int format, DrmConfiguration configuration)`
  Check if this plugin can create a player for the given content format and DRM configuration.

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

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

  ### Methods inherited from interface com.castlabs.android.player.PlayerPlugin

  `createDrmLicenseManagers, setDrmLicenseManagers`

- ## Constructor Details

  - ### HlsPlayerPlugin

    public HlsPlayerPlugin()
    Default constructor for HlsPlayerPlugin.

- ## Method Details

  - ### isFormatSupported

    public boolean isFormatSupported(int format, @Nullable DrmConfiguration configuration)
    Description copied from interface: `PlayerPlugin`
    Check if this plugin can create a player for the given content format and DRM configuration.
    Specified by:
      `isFormatSupported` in interface `PlayerPlugin`
    Parameters:
      `format` - the content format (one of `SdkConsts.CONTENT_TYPE_UNKNOWN`, `SdkConsts.CONTENT_TYPE_DASH`, `SdkConsts.CONTENT_TYPE_HLS`, `SdkConsts.CONTENT_TYPE_SMOOTHSTREAMING`, or `SdkConsts.CONTENT_TYPE_MP4`)
      `configuration` - the drm configuration
    Returns:
      true if this plugin can create a player for the given content format and drm configuration

  - ### getRendererCapabilities

    @Nullable public com.google.android.exoplayer2.RendererCapabilities[] getRendererCapabilities(@NonNull Context context, @Nullable DrmConfiguration drmConfiguration)
    Description copied from interface: `PlayerPlugin`
    Retrieve array of supported RendererCapabilities.
    Specified by:
      `getRendererCapabilities` in interface `PlayerPlugin`
    Parameters:
      `context` - the context
      `drmConfiguration` - the drm configuration
    Returns:
      RendererCapabilities array supported by the player plugin or null

  - ### createDrmInitDataProvider

    @Nullable public PlayerPlugin.DrmInitDataProvider createDrmInitDataProvider(ManifestModifier manifestModifier)
    Description copied from interface: `PlayerPlugin`
    Creates a `PlayerPlugin.DrmInitDataProvider` instance.
    Specified by:
      `createDrmInitDataProvider` in interface `PlayerPlugin`
    Parameters:
      `manifestModifier` - The manifest modifier.
    Returns:
      The created `PlayerPlugin.DrmInitDataProvider` or null if not supported.

  - ### createMediaSource

    @NonNull public com.google.android.exoplayer2.source.MediaSource createMediaSource(@NonNull PlayerConfig config, boolean attachInitialPositionProvider, @NonNull PlayerController playerController)
    Description copied from interface: `PlayerPlugin`
    Create the content media source based on the supplied path and the `PlayerController`
    Specified by:
      `createMediaSource` in interface `PlayerPlugin`
    Parameters:
      `config` - The `PlayerConfig`
      `attachInitialPositionProvider` - Whether toattach the initial position provider to the media source
      `playerController` - The `PlayerController` instance
    Returns:
      The media source

  - ### createRendererContainers

    @NonNull public List<TrackRendererPlugin.TrackRendererContainer> createRendererContainers(@NonNull PlayerController playerController, @Nullable DrmConfiguration drmConfiguration) throws CastlabsPlayerException
    Description copied from interface: `PlayerPlugin`
    Create the list of renderer containers based on the supplied `DrmConfiguration` and `PlayerController`
    Specified by:
      `createRendererContainers` in interface `PlayerPlugin`
    Parameters:
      `playerController` - The `PlayerController` instance
      `drmConfiguration` - The `DrmConfiguration`, might be `null`
    Returns:
      The list of renderer containers
    Throws:
      `CastlabsPlayerException` - when render containers can not be created or an error occurs