-
- 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 ofVideoService
.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 totrue
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)
void
setPosition(javafx.geometry.Pos alignment, double topPadding, double rightPadding, double bottomPadding, double leftPadding)
Allows setting the position of the media file.void
show()
Afteradding 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
-
create
static java.util.Optional<VideoService> create()
Returns an instance ofVideoService
.- Returns:
- An instance of
VideoService
.
-
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
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()
Afteradding 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 totrue
.
-
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 alignmenttopPadding
- the top padding value, relative to the screenrightPadding
- the right padding value, relative to the screenbottomPadding
- the bottom padding value, relative to the screenleftPadding
- the left padding value, relative to the screen
-
setLooping
void setLooping(boolean looping)
When looping is set totrue
the media files in the playlist will be played indefinitely untilstop()
orhide()
is called.Note: calling this method must be done before starting media playback.
- Parameters:
looping
- Whentrue
the playlist will restart from the beginning after all media files have been played. Default value isfalse
.
-
setControlsVisible
void setControlsVisible(boolean controlsVisible)
When set totrue
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 isfalse
.
-
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 theStatus
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.
-
-