Package com.castlabs.android.player

## Interface PlayerControllerPlugin.Component

- All Known Subinterfaces:
    `AnalyticsSession`, `PlayerControllerPlugin.VisualComponent`
  All Known Implementing Classes:
    `AnalyticsSessionProxy`, `ExoSubtitlesRendererPlugin.ExoSubtitleComponent`, `VisualComponentProxy`
  Enclosing interface:
    PlayerControllerPlugin

      public static interface PlayerControllerPlugin.Component

  Implementations of this component can be used to gain controlled access to a `PlayerController`.

  The component can use the `PlayerController` to add event listeners and get callbacks during the playback lifecycle.

- - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `Class` | `id()` | Returns the class that is used to identify this component when it is registered with the player controller.
    `void` | `onDestroy​(PlayerController playerController)` | Called when the controller is destroyed.
    `void` | `onOpenBundle​(PlayerController playerController, Bundle bundle)` | Called when the player controller is opened with a bundle.
    `void` | `onOpenState​(PlayerController playerController, PlayerConfig playerConfig)` | Called when the player controller is opened with a config.

- - ### Method Detail

    - #### id

          @NonNull
          Class id()

      Returns the class that is used to identify this component when it is registered with the player controller. This is what you need to pass to `PlayerController.getComponent(Class)` to get the registered instance of this component.
      Returns:
        The class that identifies this component.

    - #### onDestroy

          void onDestroy​(@NonNull
                         PlayerController playerController)

      Called when the controller is destroyed. Implementation must use this to unregister any listeners that were attached to the controller before.
      Parameters:
        `playerController` - The player controller

    - #### onOpenBundle

          void onOpenBundle​(@NonNull
                            PlayerController playerController,
                            @NonNull
                            Bundle bundle)

      Called when the player controller is opened with a bundle. Implementations can use this to extract or modify bundle data.
      Parameters:
        `playerController` - The player controller
        `bundle` - The bundle

    - #### onOpenState

          void onOpenState​(PlayerController playerController,
                           PlayerConfig playerConfig)

      Called when the player controller is opened with a config. Implementations can use this to extract or modify config data.
      Parameters:
        `playerController` - The player controller
        `playerConfig` - The playback state