Interface MediaPlayback<Player>

  • Type Parameters:
    Player - The type of player used for media playback.
    All Known Implementing Classes:
    ExoMediaPlayback, MediaPlayerPlayback

    public interface MediaPlayback<Player>
    Plays media using the specified player.
    • Method Summary

      All Methods Instance Methods Abstract Methods Default Methods 
      Modifier and Type Method Description
      void add​(int index, Video video)
      Adds the video to the video list at the specified index.
      void add​(Video video)
      Adds the video to the end of the video list.
      void addAll​(int index, java.util.Collection<Video> videos)
      Inserts all videos in the collection at the specified index.
      void addAll​(java.util.Collection<Video> videos)
      Add all videos in the collection to the end of the list.
      void clear()
      Removes all videos from the list.
      void destroyPlayer()
      Destroys the current player and releases it from memory.
      void emitErrorEvent​(java.lang.String message)
      Emits an error event with the message passed in the event's properties
      void emitErrorEvent​(java.lang.String message, java.lang.Exception exception)
      Emits an error event including the message passed and the exception in the properties
      Analytics getAnalytics()
      Returns the analytics component, the part of the player that monitors and tracks video playback and engagement.
      int getBufferPercentage()
      Returns the buffer percentage
      int getCurrentIndex()
      Gets the index from the current video
      long getCurrentPosition()
      Returns the current playhead position of the underlying video player.
      Source getCurrentSource()
      Get the current source for the Video.
      Video getCurrentVideo()
      Get the currently playing video.
      long getLiveEdge()
      Obtains the playhead position of the "live edge".
      PlaybackNotification getNotification()
      Get the object which handles showing an on-going player notification.
      Player getPlayer()
      Get the player used for media playback.
      java.util.List<Video> getPlaylist()
      Returns a immutable copy of the video list.
      DefaultSourceSelectionController getSourceController()
      The source selector which uses a delegate to select sources.
      Video getVideoAt​(int index)
      Gets a video from the video list at the specified index
      float getVolume()  
      boolean hasDvr()
      Indicates if the current stream is a live video with DVR.
      boolean isCurrentVideo360Mode()
      Returns true if the video is a 360 video otherwise returns false
      boolean isInLiveEdge()
      Checks the current playhead position with the live edge position and determines if it is within range of the live edge.
      boolean isLive()
      Indicates whether the current stream is a live video.
      boolean isPlaying()  
      boolean isPlayingAudioOnly()
      Check if the player is currently playing and the media is audio-only.
      boolean isSourceSet()
      Returns if a source has been set
      void onTaskRemoved​(android.content.Intent rootIntent)
      This is called when the MediaPlaybackService is currently running and the user has removed a task that comes from the service's application.
      void openCurrentVideoSource()
      Prepares the player to play the current video source.
      void openVideo​(Video video, Source source)
      Creates, configures, and prepares a new instance of MediaPlayback
      void remove​(int index)
      Removes the video at the specified index.
      default void replace​(int index, Video video)
      Removes and replaces the video at the specified index.
      void setCurrentIndex​(int index)
      Sets the current video to the specified index.
      void setProgressInterval​(int progressInterval)
      Sets the the interval in milliseconds at which to fire PROGRESS events during playback.
      Video setVideoPath​(java.lang.String path)
      Replaces player content with the video at the specified path.
      Video setVideoPath​(java.lang.String videoPath, java.util.Map<java.lang.String,​java.lang.String> languageCodeCaptionsMap)
      Replace player content with the video and captions at the specified paths.
      void setVideoSource​(Video video, Source source)
      Sets the video source that will be used for playback.
    • Method Detail

      • getPlayer

        Player getPlayer()
        Get the player used for media playback.
        Returns:
        The media player.
      • getCurrentVideo

        Video getCurrentVideo()
        Get the currently playing video.
        Returns:
        The current media object.
      • getCurrentSource

        Source getCurrentSource()
        Get the current source for the Video.
        Returns:
        The source used for playback.
      • setVideoSource

        void setVideoSource​(Video video,
                            Source source)
        Sets the video source that will be used for playback.
        Parameters:
        video - reference to the video, if any.
        source - reference to the video source, if any.
      • isPlayingAudioOnly

        boolean isPlayingAudioOnly()
        Check if the player is currently playing and the media is audio-only.
        Returns:
        True if the player is currently playing audio-only media; false otherwise.
      • getAnalytics

        Analytics getAnalytics()
        Returns the analytics component, the part of the player that monitors and tracks video playback and engagement.
        Returns:
        the analytics component
      • getSourceController

        DefaultSourceSelectionController getSourceController()
        The source selector which uses a delegate to select sources.
        Returns:
        A source controller
      • onTaskRemoved

        void onTaskRemoved​(android.content.Intent rootIntent)
        This is called when the MediaPlaybackService is currently running and the user has removed a task that comes from the service's application.
        Parameters:
        rootIntent - The original Intent that was used to launch the task that is being removed.
      • getNotification

        PlaybackNotification getNotification()
        Get the object which handles showing an on-going player notification.
        Returns:
        An object to configure the on-going playback notification.
      • openVideo

        void openVideo​(Video video,
                       Source source)
        Creates, configures, and prepares a new instance of MediaPlayback
        Parameters:
        video - reference to the video to be prepared for the playback.
        source - reference to the source to played if any.
        Throws:
        java.lang.NullPointerException - if video is null.
      • destroyPlayer

        void destroyPlayer()
        Destroys the current player and releases it from memory. This helps to manage working with the complex state machines that are the MediaPlayer and the SurfaceView
        See Also:
        MediaPlayer, SurfaceView
      • getPlaylist

        java.util.List<Video> getPlaylist()
        Returns a immutable copy of the video list.
      • isPlaying

        boolean isPlaying()
        Returns:
        True if the player is currently playing.
      • add

        void add​(Video video)
        Adds the video to the end of the video list.
      • add

        void add​(int index,
                 Video video)
        Adds the video to the video list at the specified index.
        Throws:
        java.lang.IndexOutOfBoundsException - when index < 0 or index is larger than the size of the video list.
      • addAll

        void addAll​(java.util.Collection<Video> videos)
        Add all videos in the collection to the end of the list.
        Parameters:
        videos - The videos to append.
      • addAll

        void addAll​(int index,
                    java.util.Collection<Video> videos)
        Inserts all videos in the collection at the specified index.
        Throws:
        java.lang.IndexOutOfBoundsException - when index < 0 or index is larger than the size of the video list.
      • replace

        default void replace​(int index,
                             Video video)
        Removes and replaces the video at the specified index.
        Parameters:
        index - The index to replace a media item.
        video - The video to replace
        Throws:
        java.lang.IndexOutOfBoundsException - when index < 0 or index is larger than the size of the video list.
      • setVideoPath

        Video setVideoPath​(java.lang.String path)
        Replaces player content with the video at the specified path.
        Parameters:
        path - HTTP path to a video
        Returns:
        The created Video object.
      • setVideoPath

        Video setVideoPath​(java.lang.String videoPath,
                           java.util.Map<java.lang.String,​java.lang.String> languageCodeCaptionsMap)
        Replace player content with the video and captions at the specified paths.
        Parameters:
        videoPath - HTTP path to the video
        languageCodeCaptionsMap - A map of language code to caption urls.
      • getVideoAt

        Video getVideoAt​(int index)
        Gets a video from the video list at the specified index
      • getCurrentIndex

        int getCurrentIndex()
        Gets the index from the current video
        Returns:
        The index of the current video or -1 if there are none.
      • setCurrentIndex

        void setCurrentIndex​(int index)
        Sets the current video to the specified index.
        Throws:
        java.lang.IndexOutOfBoundsException - when index < 0 or index is larger than the size of the video list.
      • remove

        void remove​(int index)
        Removes the video at the specified index.
        Throws:
        java.lang.IndexOutOfBoundsException - when index < 0 or index is larger than the size of the video list.
      • clear

        void clear()
        Removes all videos from the list.
      • getBufferPercentage

        int getBufferPercentage()
        Returns the buffer percentage
      • getVolume

        float getVolume()
      • isSourceSet

        boolean isSourceSet()
        Returns if a source has been set
      • hasDvr

        boolean hasDvr()
        Indicates if the current stream is a live video with DVR.
        Returns:
        TRUE iff live video with DVR capabilities is supported.
      • isLive

        boolean isLive()
        Indicates whether the current stream is a live video.
        Returns:
        TRUE iff live video is supported.
      • getLiveEdge

        long getLiveEdge()
        Obtains the playhead position of the "live edge".
        Returns:
        0. Subclasses should override to provide a value within three target durations of the maximum position.
      • isInLiveEdge

        boolean isInLiveEdge()
        Checks the current playhead position with the live edge position and determines if it is within range of the live edge.
        Returns:
        true if in live edge.
      • getCurrentPosition

        long getCurrentPosition()
        Returns the current playhead position of the underlying video player.

        If the player has not been set or initialized, Constants.TIME_UNSET will returned.

        Returns:
        the current playhead position.
      • setProgressInterval

        void setProgressInterval​(int progressInterval)
        Sets the the interval in milliseconds at which to fire PROGRESS events during playback. The default is 500ms.
        Parameters:
        progressInterval - the PROGRESS interval in milliseconds
      • openCurrentVideoSource

        void openCurrentVideoSource()
        Prepares the player to play the current video source.
      • emitErrorEvent

        void emitErrorEvent​(java.lang.String message)
        Emits an error event with the message passed in the event's properties
      • emitErrorEvent

        void emitErrorEvent​(java.lang.String message,
                            java.lang.Exception exception)
        Emits an error event including the message passed and the exception in the properties
      • isCurrentVideo360Mode

        boolean isCurrentVideo360Mode()
        Returns true if the video is a 360 video otherwise returns false