com.brightcove.player.controller

## Class ExoPlayerSourceSelector

- java.lang.Object
- - com.brightcove.player.controller.ExoPlayerSourceSelector

- All Implemented Interfaces:
    SourceSelector

      public final class ExoPlayerSourceSelector
      extends java.lang.Object
      implements SourceSelector

  The default Source Selector used with ExoPlayer. It attempts selecting a `DeliveryType.DASH` `Source` when available, or it will use `BrightcoveSourceSelector.selectSource(Video)` otherwise.

  This selector prioritize HEVC sources for Android API level 21 and higher.

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `ExoPlayerSourceSelector()`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `Source` | `selectSource(Video video)` Determines best appropriate Source within given Video object based on logic implemented.

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

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

- - ### Constructor Detail

    - #### ExoPlayerSourceSelector

          public ExoPlayerSourceSelector()

  - ### Method Detail

    - #### selectSource

          @NonNull
          public Source selectSource(@NonNull
                                              Video video)
                                       throws NoSourceFoundException

      Determines best appropriate Source within given Video object based on logic implemented.
      Specified by:
        `selectSource` in interface `SourceSelector`
      Parameters:
        `video` - Video in which to find the most appropriate Source
      Returns:
        the best matched Source based on the currently implemented selection logic
      Throws:
        `java.lang.IllegalArgumentException` - when the Video passed is null
        `NoSourceFoundException` - when no valid `Source` is found