Class SingleControllerPlaylist

    • Field Detail

      • DEFAULT_PLAYLIST_WINDOW_BEFORE

        public static final int DEFAULT_PLAYLIST_WINDOW_BEFORE
        The default number of Playlist items to load before the current one.
        See Also:
        Constant Field Values
      • DEFAULT_PLAYLIST_WINDOW_AFTER

        public static final int DEFAULT_PLAYLIST_WINDOW_AFTER
        The default number of Playlist items to load after the current one.
        See Also:
        Constant Field Values
      • DEFAULT_PLAYLIST_MAX_LOADED_ITEMS

        public static final int DEFAULT_PLAYLIST_MAX_LOADED_ITEMS
        The default maximum number overall of Playlist items to keep loaded at any time.
        See Also:
        Constant Field Values
    • Method Detail

      • setInitialDrmConfiguration

        public void setInitialDrmConfiguration​(@Nullable
                                               DrmConfiguration drmConfiguration)
        Initial DrmConfiguration used to initialize and configure DRM session manager when playback is started with clear playlist item. Initial DRM configuration is only needed to be set when adding items dynamically into the playlist and the very first item is in clear.

        Note that when protected item is started playing then the corresponding DrmConfiguration is used which is part of item's PlayerConfig
        Parameters:
        drmConfiguration - Initial DrmConfiguration
      • getPlaylistWindowBefore

        public int getPlaylistWindowBefore()
        Returns:
        the number of Playlist items to load before the current one.
      • setPlaylistWindowBefore

        public void setPlaylistWindowBefore​(int playlistWindowBefore)
        Sets the number of Playlist items to load before the current one.
        Parameters:
        playlistWindowBefore - the number of items before
      • getPlaylistWindowAfter

        public int getPlaylistWindowAfter()
        Returns:
        the number of Playlist items to load after the current one.
      • setPlaylistWindowAfter

        public void setPlaylistWindowAfter​(int playlistWindowAfter)
        Sets the number of Playlist items to load after the current one.
        Parameters:
        playlistWindowAfter - the number of items after
      • getMaximumLoadedItems

        public int getMaximumLoadedItems()
        Returns:
        the maximum number overall of Playlist items to keep loaded at any time.
      • setMaximumLoadedItems

        public void setMaximumLoadedItems​(int maximumLoadedItems)
        Set the maximum number overall of Playlist items to keep loaded at any time.
        Parameters:
        maximumLoadedItems - the number of items
      • createContentMediaSource

        @NonNull
        public com.google.android.exoplayer2.source.MediaSource createContentMediaSource​(@NonNull
                                                                                         PlayerConfig playerConfig,
                                                                                         @NonNull
                                                                                         PlayerPlugin playerPlugin)
        Description copied from class: PlayerController
        Creates a MediaSource for just one PlayerConfig. The resultin MediaSource will be wrapped by a ClippingMediaSource if needed.
        Overrides:
        createContentMediaSource in class PlayerController
        Parameters:
        playerConfig - the config from which to create the MediaSource
        playerPlugin - the PlayerPlugin that will create the MediaSource
        Returns:
        the MediaSource
      • open

        public void open​(@NonNull
                         Parcelable... playerConfigs)
        Description copied from interface: Playlist
        Starts playback with an Array of PlayerConfigs or Bundles.
        Specified by:
        open in interface Playlist
        Parameters:
        playerConfigs - array of PlayerConfigs or Bundles, each representing a Playlist item.
      • open

        public void open​(int startIndex,
                         @NonNull
                         Parcelable... playerConfigs)
        Description copied from interface: Playlist
        Start playback with the specified index and with an Array of PlayerConfigs or Bundles.
        Specified by:
        open in interface Playlist
        Parameters:
        startIndex - The index of the config to start playback with
        playerConfigs - The array of player configs to play
      • open

        public void open​(@Nullable
                         PlayerConfig playerConfig)
        Description copied from class: PlayerController
        Opens the given URL to the video. You can specify a path to a local file here, but in this case, please note that the path *needs* to be absolute. The path is treated as a URL and a protocol is expected. If no protocol is specified, the `file://` protocol is assumed and prepended to the given path.

        If you are using an Analytics Plugin, make sure you use PlayerController.setAnalyticsMetaData(AnalyticsMetaData) to set the required meta-data before calling this method.

        Overrides:
        open in class PlayerController
        Parameters:
        playerConfig - the desired Player configuration
      • addItem

        public void addItem​(@NonNull
                            PlayerConfig config)
        Description copied from interface: Playlist
        Adds an item at the end of the playlist.
        Specified by:
        addItem in interface Playlist
        Parameters:
        config - item to add
      • addItem

        public void addItem​(int position,
                            @NonNull
                            PlayerConfig config)
        Description copied from interface: Playlist
        Adds an item at the specified position in the playlist.
        Specified by:
        addItem in interface Playlist
        Parameters:
        position - the position at which to add the item.
        config - item to add
      • removeItem

        public void removeItem​(@NonNull
                               PlayerConfig config)
        Description copied from interface: Playlist
        Removes an item from the Playlist
        Specified by:
        removeItem in interface Playlist
        Parameters:
        config - item to remove
      • swap

        public void swap​(@NonNull
                         PlayerConfig playerConfig1,
                         @NonNull
                         PlayerConfig playerConfig2)
        Description copied from interface: Playlist
        Interchanges two Playlist items. If any of such items is the currently playing item, playback won't be affected.
        Specified by:
        swap in interface Playlist
        Parameters:
        playerConfig1 - first item to swap
        playerConfig2 - second item to swap
      • getCurrentItem

        @Nullable
        public PlayerConfig getCurrentItem()
        Description copied from interface: Playlist
        Returns the currently playing item
        Specified by:
        getCurrentItem in interface Playlist
        Returns:
        the currently playing item
      • getCurrentItemIndex

        public int getCurrentItemIndex()
        Description copied from interface: Playlist
        Returns current item index
        Specified by:
        getCurrentItemIndex in interface Playlist
        Returns:
        Current item index or -1 otherwise
      • open

        public void open​(@NonNull
                         List<? extends Parcelable> playerConfigs)
        Description copied from interface: Playlist
        Starts playback with a List of PlayerConfigs or Bundles.
        Specified by:
        open in interface Playlist
        Parameters:
        playerConfigs - list of PlayerConfigs, or Bundles each representing a Playlist item.
      • open

        public void open​(int startIndex,
                         @NonNull
                         List<? extends Parcelable> playerConfigs)
        Description copied from interface: Playlist
        Start playback with the specified index and player configs
        Specified by:
        open in interface Playlist
        Parameters:
        startIndex - The index of the config to start playback with
        playerConfigs - The list of player configs to play
      • saveState

        public boolean saveState​(@NonNull
                                 Bundle targetBundle)
        Description copied from class: PlayerController
        Saves the state of this controller to the given target bundle.

        This will store the playback state and all intent parameters that are required to restore the state of this controller using PlayerController.open(Bundle) with the target bundle.

        The only exception is the current video quality selection. The video quality will be stored as the initial quality in the bundle if adaptive bitrate switching is turned off and the quality was selected manually. In that case, adaptive bitrate switching will be turned off when the bundle is used to re-open content.

        Overrides:
        saveState in class PlayerController
        Parameters:
        targetBundle - the target bundle
        Returns:
        True if the state was saved successfully
      • setWrapAroundPlaylistEdges

        public void setWrapAroundPlaylistEdges​(boolean wrapPlaylist)
        Set whether the Playlist should wrap around the edges. If it is set to true, and nextItem() is called while playing the last item, the Playlist will transition to the first playlist item. Conversely, if previousItem() is called while playing the first item, the Playlist will transition to the last playlist item.
        Parameters:
        wrapPlaylist - whether to enable playlist wrapping.
      • nextItem

        @Nullable
        public PlayerConfig nextItem()
        Description copied from interface: Playlist
        Advances playback to the next Playlist item.
        Specified by:
        nextItem in interface Playlist
        Returns:
        the next item to play. If null, the end of the Playlist has been reached.
      • playItem

        @Nullable
        public PlayerConfig playItem​(int index,
                                     long positionInPeriodUs)
        Plays the item at the specified index
        Parameters:
        index - the index of the item to play
        positionInPeriodUs - position within the item to which to seek to
        Returns:
        The PlayerConfig to Play, or null
      • playItem

        @Nullable
        public PlayerConfig playItem​(int index)
        Description copied from interface: Playlist
        Advances playback to the Playlist item specified by the index.
        Specified by:
        playItem in interface Playlist
        Returns:
        the item to play. If null, the end of the Playlist has been reached.
      • getPreviousItemIndex

        public int getPreviousItemIndex()
        Returns:
        Index or C.INDEX_UNSET
      • getNextItemIndex

        public int getNextItemIndex()
        Returns:
        Index or C.INDEX_UNSET
      • previousItem

        @Nullable
        public PlayerConfig previousItem()
        Description copied from interface: Playlist
        Moves backwards in the Playlist.
        Specified by:
        previousItem in interface Playlist
        Returns:
        the next item to play. If null, the start of the Playlist has been reached.
      • previousItem

        @Nullable
        public PlayerConfig previousItem​(long positionMs)
        Moves backwards in the Playlist.
        Parameters:
        positionMs - at which position to playing the item. C.TIME_UNSET will use the default position and C.TIME_END_OF_SOURCE will start playing at the end of the item. This last value makes sense if playing backwards.
        Returns:
        the next item to play. If null, the start of the Playlist has been reached.
      • seekWith

        public void seekWith​(long offsetUs)
        Sets the player to the new position by applying the offset to the current position i.e. with the negative offset the playback goes backward and with the positive one goes forward. If necessary the playback may go to the previous or next item in the playlist with the calculated playback offset as following: previous item position is previous_item_duration + (current_item_position + offset) and next item position is current_item_position + offset - current_item_duration. In case of seeking within the first or the last item in the playlist then the playback position is clipped to either zero or last item duration correspondingly.
        Overrides:
        seekWith in class PlayerController
        Parameters:
        offsetUs - The offset to be applied to the current position
      • getSize

        public int getSize()
        Description copied from interface: Playlist
        Returns the number of Configs in the playlist.
        Specified by:
        getSize in interface Playlist
        Returns:
        number of Configs