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

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

Android Configuration: none

iOS Configuration: none

Since:
3.4.0
  • Property Summary

    Properties
    Type
    Property
    Description
    javafx.beans.property.IntegerProperty
    Integer property that indicates the current index on the playlist, starting from 0.
    javafx.beans.property.BooleanProperty
    Boolean property that indicates if the media file is playing in full screen mode or in normal mode.
    javafx.beans.property.ReadOnlyObjectProperty<Status>
    Read only property that indicates the media player status.
  • Method Summary

    Modifier and Type
    Method
    Description
    Returns an instance of VideoService.
    javafx.beans.property.IntegerProperty
    Integer property that indicates the current index on the playlist, starting from 0.
    javafx.beans.property.BooleanProperty
    Boolean property that indicates if the media file is playing in full screen mode or in normal mode.
    javafx.collections.ObservableList<String>
    Returns an observable list with media file names.
    void
    Removes the layer with the control, so the JavaFX layer can resume normal interaction.
    void
    Pauses a playing media file.
    void
    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
    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>
    Read only property that indicates the media player status.
    void
    Stops a playing media file.
  • Property Details

    • fullScreen

      javafx.beans.property.BooleanProperty fullScreenProperty
      Boolean property that indicates if the media file is playing in full screen mode or in normal mode.
      See Also:
    • status

      javafx.beans.property.ReadOnlyObjectProperty<Status> statusProperty
      Read only property that indicates the media player status.
    • currentIndex

      javafx.beans.property.IntegerProperty currentIndexProperty
      Integer property that indicates the current index on the playlist, starting from 0.
      See Also:
  • Method Details

    • create

      static Optional<VideoService> create()
      Returns an instance of VideoService.
      Returns:
      An instance of VideoService.
    • getPlaylist

      javafx.collections.ObservableList<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.
      See Also:
    • statusProperty

      javafx.beans.property.ReadOnlyObjectProperty<Status> statusProperty()
      Read only property that indicates the media player status.
    • 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.
      See Also: