Interface VideoService

  • All Known Implementing Classes:
    AndroidVideoService, DefaultVideoService, DummyVideoService, IOSVideoService

    public interface VideoService
    With the video service you can play media files, both video and audio, on your device.

    Important note: The video files will be displayed on top of the JavaFX layer. This means that the developer should take care of disabling view switching any other UI interaction that could lead to overlapping nodes while the video is playing.

    If the user calls hide() or the playlist finishes, the media layer will be removed, and the user will be able to resume normal interaction.

    Example

     Services.get(VideoService.class).ifPresent(service -> {
          service.setControlsVisible(true);
         service.getPlaylist().add("my.video.mp4");
          service.play();
      });

    Android Configuration: none

    iOS Configuration: none

    Since:
    3.4.0
    • Method Summary

      All Methods Static Methods Instance Methods Abstract Methods 
      Modifier and Type Method Description
      static java.util.Optional<VideoService> create()
      Returns an instance of VideoService.
      javafx.beans.property.IntegerProperty currentIndexProperty()
      Integer property that indicates the current index on the playlist, starting from 0.
      javafx.beans.property.BooleanProperty fullScreenProperty()
      Boolean property that indicates if the media file is playing in full screen mode or in normal mode.
      javafx.collections.ObservableList<java.lang.String> getPlaylist()
      Returns an observable list with media file names.
      void hide()
      Removes the layer with the control, so the JavaFX layer can resume normal interaction.
      void pause()
      Pauses a playing media file.
      void play()
      Plays a valid media file.
      void setControlsVisible​(boolean controlsVisible)
      When set to true the native embedded controls will be displayed on top of the media file.
      void setCurrentIndex​(int index)
      Specifies the media file to be played at the specified index in the initial playlist.
      void setFullScreen​(boolean fullScreen)
      Called while the video is visible, if true displays the media file in full screen mode.
      void setLooping​(boolean looping)
      When looping is set to true the media files in the playlist will be played indefinitely until stop() or hide() is called.
      void setPosition​(javafx.geometry.Pos alignment, double topPadding, double rightPadding, double bottomPadding, double leftPadding)
      Allows setting the position of the media file.
      void show()
      After adding items to the the playlist, this method can be called to prepare the media player and the native layer on top of the JavaFX one.
      javafx.beans.property.ReadOnlyObjectProperty<Status> statusProperty()
      Read only property that indicates the media player status.
      void stop()
      Stops a playing media file.
    • Method Detail

      • getPlaylist

        javafx.collections.ObservableList<java.lang.String> getPlaylist()
        Returns an observable list with media file names.

        Supported formats:

        The media files (video and audio) can either be a valid URL or they can be provided in the resources folder.

        For example, the following media files:

        • /src/main/resources/media1.mp4
        • /src/main/resources/video/media2.mp4
        • http://www.host.com/media3.mp4
        can be added to the playlist as follows:
         getPlaylist().addAll("media1.mp4", "video/media2.mp4",
         "http://www.host.com/media3.mp4");
         
        Returns:
        an ObservableList of media file names, either in the resource folder or valid URLs
      • show

        void show()
        After adding items to the the playlist, this method can be called to prepare the media player and the native layer on top of the JavaFX one.

        Calling this method doesn't start playing. Alternatively, call play() directly.

      • play

        void play()
        Plays a valid media file.

        If the media player control wasn't created yet, it will be created first and placed in a layer on top of the JavaFX layer. If it was already created, it will start or resume playing.

      • stop

        void stop()
        Stops a playing media file. It doesn't remove the media player.

        If play() is called again, the playlist will start from the beginning of the playlist.

      • pause

        void pause()
        Pauses a playing media file.

        If play() is called again, the playlist will resume from the position the media file was at when it was paused.

      • hide

        void hide()
        Removes the layer with the control, so the JavaFX layer can resume normal interaction. If a media file is currently playing, it will be stopped.

        This method can be called at any time to stop and hide the media player. It will be called automatically when the last media file in the playlist has ended, unless looping is set to true.

      • setPosition

        void setPosition​(javafx.geometry.Pos alignment,
                         double topPadding,
                         double rightPadding,
                         double bottomPadding,
                         double leftPadding)
        Allows setting the position of the media file. Only valid when full screen is disabled.
        Parameters:
        alignment - values for describing vertical and horizontal positioning and alignment
        topPadding - the top padding value, relative to the screen
        rightPadding - the right padding value, relative to the screen
        bottomPadding - the bottom padding value, relative to the screen
        leftPadding - the left padding value, relative to the screen
      • setLooping

        void setLooping​(boolean looping)
        When looping is set to true the media files in the playlist will be played indefinitely until stop() or hide() is called.

        Note: calling this method must be done before starting media playback.

        Parameters:
        looping - When true the playlist will restart from the beginning after all media files have been played. Default value is false.
      • setControlsVisible

        void setControlsVisible​(boolean controlsVisible)
        When set to true the native embedded controls will be displayed on top of the media file. Note that the controls are hidden automatically after a few seconds and a tap on the screen might be required to bring the controls back.

        Note: calling this method must be done before starting media playback.

        Media controls are also only visible for video files, not for audio.

        Parameters:
        controlsVisible - true to show the native embedded controls. Default value is false.
      • setFullScreen

        void setFullScreen​(boolean fullScreen)
        Called while the video is visible, if true displays the media file in full screen mode. It is displayed centered, without padding and with a black background to keep its aspect ratio. A pinch gesture can be used to switch from/to normal mode to/from full screen mode. FullScreen mode can be enabled only with video files, not with audio.
        Parameters:
        fullScreen - Sets the media file in full screen. Default is false
      • fullScreenProperty

        javafx.beans.property.BooleanProperty fullScreenProperty()
        Boolean property that indicates if the media file is playing in full screen mode or in normal mode.
        Returns:
        A BooleanProperty with the full screen mode status
      • statusProperty

        javafx.beans.property.ReadOnlyObjectProperty<Status> statusProperty()
        Read only property that indicates the media player status.
        Returns:
        A ReadOnlyObjectProperty with the Status of the media player
      • setCurrentIndex

        void setCurrentIndex​(int index)
        Specifies the media file to be played at the specified index in the initial playlist. The current media file will be stopped and the media file that is located at the provided index will start playing.
        Parameters:
        index - The index from the playlist that will start playing
      • currentIndexProperty

        javafx.beans.property.IntegerProperty currentIndexProperty()
        Integer property that indicates the current index on the playlist, starting from 0.
        Returns:
        an IntegerProperty indicating the current index on the playlist.