public final class MediaPlayer extends Object
MediaPlayer
class provides the controls for playing media.
It is used in combination with the Media
and MediaView
classes to display and control media playback. MediaPlayer
does
not contain any visual elements so must be used with the MediaView
class to view any video track which may be present.
MediaPlayer
provides the pause()
, play()
,
stop()
and seek()
controls as
well as the rate
and autoPlay
properties which apply to all types of media. It also provides the
balance
, mute
, and
volume
properties which control audio playback
characteristics. Further control over audio quality may be attained via the
AudioEqualizer
associated with the player. Frequency descriptors of
audio playback may be observed by registering an AudioSpectrumListener
.
Information about playback position, rate, and buffering may be obtained from
the currentTime
,
currentRate
, and
bufferProgressTime
properties, respectively. Media marker notifications are received by an event
handler registered as the onMarker
property.
For finite duration media, playback may be positioned at any point in time
between 0.0
and the duration of the media. MediaPlayer
refines this definition by adding the startTime
and
stopTime
properties which in effect define a virtual media source with time position
constrained to [startTime,stopTime]
. Media playback
commences at startTime
and continues to stopTime
.
The interval defined by these two endpoints is termed a cycle with
duration being the difference of the stop and start times. This cycle
may be set to repeat a specific or indefinite number of times. The total
duration of media playback is then the product of the cycle duration and the
number of times the cycle is played. If the stop time of the cycle is reached
and the cycle is to be played again, the event handler registered with the
onRepeat
property is invoked. If the stop time is reached and
the cycle is not to be repeated, then the event handler registered
with the onEndOfMedia
property is invoked. A zero-relative index of
which cycle is presently being played is maintained by currentCount
.
The operation of a MediaPlayer
is inherently asynchronous.
A player is not prepared to respond to commands quasi-immediately until
its status has transitioned to MediaPlayer.Status.READY
, which in
effect generally occurs when media pre-roll completes. Some requests made of
a player prior to its status being READY
will however take
effect when that status is entered. These include invoking play()
without an intervening invocation of pause()
or stop()
before the READY
transition, as well as setting any of the
autoPlay
, balance
,
mute
, rate
,
startTime
, stopTime
, and
volume
properties.
The status
property may be monitored to make the application aware of player status
changes, and callback functions may be registered via properties such as
onReady
if an action should be taken when a particular status is
entered. There are also error
and onError
properties which
respectively enable monitoring when an error occurs and taking a specified
action in response thereto.
The same MediaPlayer
object may be shared among multiple
MediaView
s. This will not affect the player itself. In
particular, the property settings of the view will not have any effect on
media playback.
-
Property Summary
Properties Type Property Description DoubleProperty
audioSpectrumInterval
The interval between spectrum updates in seconds.ObjectProperty<AudioSpectrumListener>
audioSpectrumListener
A listener for audio spectrum updates.IntegerProperty
audioSpectrumNumBands
The number of bands in the audio spectrum.IntegerProperty
audioSpectrumThreshold
The sensitivity threshold in decibels; must be non-positive.BooleanProperty
autoPlay
Whether playing should start as soon as possible.DoubleProperty
balance
The balance, or left-right setting, of the audio output.ReadOnlyObjectProperty<Duration>
bufferProgressTime
The current buffer position indicating how much media can be played without stalling theMediaPlayer
.ReadOnlyIntegerProperty
currentCount
The number of completed playback cycles.ReadOnlyDoubleProperty
currentRate
The current rate of playback regardless of settings.ReadOnlyObjectProperty<Duration>
currentTime
The current media playback time.IntegerProperty
cycleCount
The number of times the media will be played.ReadOnlyObjectProperty<Duration>
cycleDuration
ReadOnlyObjectProperty<MediaException>
error
Observable property set to aMediaException
if an error occurs.BooleanProperty
mute
Whether the player audio is muted.ObjectProperty<Runnable>
onEndOfMedia
Event handler invoked when the playercurrentTime
reachesstopTime
.ObjectProperty<Runnable>
onError
Event handler invoked when an error occurs.ObjectProperty<Runnable>
onHalted
Event handler invoked when the status changes toHALTED
.ObjectProperty<EventHandler<MediaMarkerEvent>>
onMarker
Event handler invoked when the playercurrentTime
reaches a media marker.ObjectProperty<Runnable>
onPaused
Event handler invoked when the status changes toPAUSED
.ObjectProperty<Runnable>
onPlaying
Event handler invoked when the status changes toPLAYING
.ObjectProperty<Runnable>
onReady
Event handler invoked when the status changes toREADY
.ObjectProperty<Runnable>
onRepeat
Event handler invoked when the playercurrentTime
reachesstopTime
and will be repeating.ObjectProperty<Runnable>
onStalled
Event handler invoked when the status changes toSTALLED
.ObjectProperty<Runnable>
onStopped
Event handler invoked when the status changes toSTOPPED
.DoubleProperty
rate
The rate at which the media should be played.ObjectProperty<Duration>
startTime
The time offset where media should start playing, or restart from when repeating.ReadOnlyObjectProperty<MediaPlayer.Status>
status
The current state of the MediaPlayer.ObjectProperty<Duration>
stopTime
The time offset where media should stop playing or restart when repeating.ReadOnlyObjectProperty<Duration>
totalDuration
The total amount of play time if allowed to play until finished.DoubleProperty
volume
The volume at which the media should be played. -
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
MediaPlayer.Status
Enumeration describing the different status values of aMediaPlayer
. -
Field Summary
Fields Modifier and Type Field Description static int
INDEFINITE
A value representing an effectively infinite number of playback cycles. -
Constructor Summary
Constructors Constructor Description MediaPlayer(Media media)
Create a player for a specific media. -
Method Summary
Modifier and Type Method Description DoubleProperty
audioSpectrumIntervalProperty()
The interval between spectrum updates in seconds.ObjectProperty<AudioSpectrumListener>
audioSpectrumListenerProperty()
A listener for audio spectrum updates.IntegerProperty
audioSpectrumNumBandsProperty()
The number of bands in the audio spectrum.IntegerProperty
audioSpectrumThresholdProperty()
The sensitivity threshold in decibels; must be non-positive.BooleanProperty
autoPlayProperty()
Whether playing should start as soon as possible.DoubleProperty
balanceProperty()
The balance, or left-right setting, of the audio output.ReadOnlyObjectProperty<Duration>
bufferProgressTimeProperty()
The current buffer position indicating how much media can be played without stalling theMediaPlayer
.ReadOnlyIntegerProperty
currentCountProperty()
The number of completed playback cycles.ReadOnlyDoubleProperty
currentRateProperty()
The current rate of playback regardless of settings.ReadOnlyObjectProperty<Duration>
currentTimeProperty()
The current media playback time.IntegerProperty
cycleCountProperty()
The number of times the media will be played.ReadOnlyObjectProperty<Duration>
cycleDurationProperty()
void
dispose()
Free all resources associated with player.ReadOnlyObjectProperty<MediaException>
errorProperty()
Observable property set to aMediaException
if an error occurs.AudioEqualizer
getAudioEqualizer()
Retrieve theAudioEqualizer
associated with this player.double
getAudioSpectrumInterval()
Retrieves the value of the audio spectrum notification interval in seconds.AudioSpectrumListener
getAudioSpectrumListener()
Retrieves the listener of the audio spectrum.int
getAudioSpectrumNumBands()
Retrieves the number of bands in the audio spectrum.int
getAudioSpectrumThreshold()
Retrieves the audio spectrum threshold in decibels.double
getBalance()
Retrieves the audio balance.Duration
getBufferProgressTime()
Retrieves thebufferProgressTime
value.int
getCurrentCount()
Retrieves the index of the current cycle.double
getCurrentRate()
Retrieves the current playback rate.Duration
getCurrentTime()
Retrieves the current media time.int
getCycleCount()
Retrieves the cycle count.Duration
getCycleDuration()
Retrieves the cycle duration in seconds.MediaException
getError()
Retrieve the value of theerror
property ornull
if there is no error.Media
getMedia()
Retrieves theMedia
instance being played.Runnable
getOnEndOfMedia()
Retrieves the end of media event handler.Runnable
getOnError()
Retrieves the event handler for errors.Runnable
getOnHalted()
Retrieves theMediaPlayer.Status.HALTED
event handler.EventHandler<MediaMarkerEvent>
getOnMarker()
Retrieves the marker event handler.Runnable
getOnPaused()
Retrieves theMediaPlayer.Status.PAUSED
event handler.Runnable
getOnPlaying()
Retrieves theMediaPlayer.Status.PLAYING
event handler.Runnable
getOnReady()
Retrieves theMediaPlayer.Status.READY
event handler.Runnable
getOnRepeat()
Retrieves the repeat event handler.Runnable
getOnStalled()
Retrieves theMediaPlayer.Status.STALLED
event handler.Runnable
getOnStopped()
Retrieves theMediaPlayer.Status.STOPPED
event handler.double
getRate()
Retrieves the playback rate.Duration
getStartTime()
Retrieves the start time.MediaPlayer.Status
getStatus()
Retrieves the current player status.Duration
getStopTime()
Retrieves the stop time.Duration
getTotalDuration()
Retrieves the total playback duration including all cycles (repetitions).double
getVolume()
Retrieves the audio playback volume.boolean
isAutoPlay()
Retrieves theautoPlay
property value.boolean
isMute()
Retrieves themuteProperty()
value.BooleanProperty
muteProperty()
Whether the player audio is muted.ObjectProperty<Runnable>
onEndOfMediaProperty()
Event handler invoked when the playercurrentTime
reachesstopTime
.ObjectProperty<Runnable>
onErrorProperty()
Event handler invoked when an error occurs.ObjectProperty<Runnable>
onHaltedProperty()
Event handler invoked when the status changes toHALTED
.ObjectProperty<EventHandler<MediaMarkerEvent>>
onMarkerProperty()
Event handler invoked when the playercurrentTime
reaches a media marker.ObjectProperty<Runnable>
onPausedProperty()
Event handler invoked when the status changes toPAUSED
.ObjectProperty<Runnable>
onPlayingProperty()
Event handler invoked when the status changes toPLAYING
.ObjectProperty<Runnable>
onReadyProperty()
Event handler invoked when the status changes toREADY
.ObjectProperty<Runnable>
onRepeatProperty()
Event handler invoked when the playercurrentTime
reachesstopTime
and will be repeating.ObjectProperty<Runnable>
onStalledProperty()
Event handler invoked when the status changes toSTALLED
.ObjectProperty<Runnable>
onStoppedProperty()
Event handler invoked when the status changes toSTOPPED
.void
pause()
Pauses the player.void
play()
Starts playing the media.DoubleProperty
rateProperty()
The rate at which the media should be played.void
seek(Duration seekTime)
Seeks the player to a new playback time.void
setAudioSpectrumInterval(double value)
Sets the value of the audio spectrum notification interval in seconds.void
setAudioSpectrumListener(AudioSpectrumListener listener)
Sets the listener of the audio spectrum.void
setAudioSpectrumNumBands(int value)
Sets the number of bands in the audio spectrum.void
setAudioSpectrumThreshold(int value)
Sets the audio spectrum threshold in decibels.void
setAutoPlay(boolean value)
Sets theautoPlay
property value.void
setBalance(double value)
Sets the audio balance.void
setCycleCount(int value)
Sets the cycle count.void
setMute(boolean value)
Sets the value ofmuteProperty()
.void
setOnEndOfMedia(Runnable value)
Sets the end of media event handler.void
setOnError(Runnable value)
Sets the event handler to be called when an error occurs.void
setOnHalted(Runnable value)
Sets theMediaPlayer.Status.HALTED
event handler.void
setOnMarker(EventHandler<MediaMarkerEvent> onMarker)
Sets the marker event handler.void
setOnPaused(Runnable value)
Sets theMediaPlayer.Status.PAUSED
event handler.void
setOnPlaying(Runnable value)
Sets theMediaPlayer.Status.PLAYING
event handler.void
setOnReady(Runnable value)
Sets theMediaPlayer.Status.READY
event handler.void
setOnRepeat(Runnable value)
Sets the repeat event handler.void
setOnStalled(Runnable value)
Sets theMediaPlayer.Status.STALLED
event handler.void
setOnStopped(Runnable value)
Sets theMediaPlayer.Status.STOPPED
event handler.void
setRate(double value)
Sets the playback rate to the supplied value.void
setStartTime(Duration value)
Sets the start time.void
setStopTime(Duration value)
Sets the stop time.void
setVolume(double value)
Sets the audio playback volume.ObjectProperty<Duration>
startTimeProperty()
The time offset where media should start playing, or restart from when repeating.ReadOnlyObjectProperty<MediaPlayer.Status>
statusProperty()
The current state of the MediaPlayer.void
stop()
Stops playing the media.ObjectProperty<Duration>
stopTimeProperty()
The time offset where media should stop playing or restart when repeating.ReadOnlyObjectProperty<Duration>
totalDurationProperty()
The total amount of play time if allowed to play until finished.DoubleProperty
volumeProperty()
The volume at which the media should be played.
-
Property Details
-
error
Observable property set to aMediaException
if an error occurs.- See Also:
getError()
-
onError
Event handler invoked when an error occurs.- See Also:
getOnError()
,setOnError(Runnable)
-
autoPlay
Whether playing should start as soon as possible. For a new player this will occur once the player has reached the READY state. The default value isfalse
.- See Also:
isAutoPlay()
,setAutoPlay(boolean)
-
rate
The rate at which the media should be played. For example, a rate of1.0
plays the media at its normal (encoded) playback rate,2.0
plays back at twice the normal rate, etc. The currently supported range of rates is[0.0, 8.0]
. The default value is1.0
.- See Also:
getRate()
,setRate(double)
-
currentRate
The current rate of playback regardless of settings. For example, ifrate
is set to 1.0 and the player is paused or stalled, thencurrentRate
will be zero.- See Also:
getCurrentRate()
-
volume
The volume at which the media should be played. The range of effective values is[0.0 1.0]
where0.0
is inaudible and1.0
is full volume, which is the default.- See Also:
getVolume()
,setVolume(double)
-
balance
The balance, or left-right setting, of the audio output. The range of effective values is[-1.0, 1.0]
with-1.0
being full left,0.0
center, and1.0
full right. The default value is0.0
.- See Also:
getBalance()
,setBalance(double)
-
startTime
The time offset where media should start playing, or restart from when repeating. When playback is stopped, the current time is reset to this value. If this value is positive, then the first time the media is played there might be a delay before playing begins unless the play position can be set to an arbitrary time within the media. This could occur for example for a video which does not contain a lookup table of the offsets of intra-frames in the video stream. In such a case the video frames would need to be skipped over until the position of the first intra-frame before the start time was reached. The default value isDuration.ZERO
.Constraints:
0 ≤ startTime <
stopTime
- See Also:
getStartTime()
,setStartTime(Duration)
-
stopTime
The time offset where media should stop playing or restart when repeating. The default value is
.getMedia()
.getDuration()Constraints:
startTime
< stopTime ≤Media.duration
- See Also:
getStopTime()
,setStopTime(Duration)
-
cycleDuration
The amount of time between thestartTime
andstopTime
of this player. For the total duration of the Media use theMedia.duration
property.- See Also:
getCycleDuration()
-
totalDuration
The total amount of play time if allowed to play until finished. IfcycleCount
is set toINDEFINITE
then this will also be INDEFINITE. If the Media duration is UNKNOWN, then this will likewise be UNKNOWN. Otherwise, total duration will be the product of cycleDuration and cycleCount.- See Also:
getTotalDuration()
-
currentTime
The current media playback time. This property is read-only: useseek(javafx.util.Duration)
to change playback to a different stream position.- See Also:
getCurrentTime()
-
status
The current state of the MediaPlayer.- See Also:
getStatus()
-
bufferProgressTime
The current buffer position indicating how much media can be played without stalling theMediaPlayer
. This is applicable to buffered streams such as those reading from network connections as opposed for example to local files.Seeking to a position beyond
bufferProgressTime
might cause a slight pause in playback until an amount of data sufficient to permit playback resumption has been buffered.- See Also:
getBufferProgressTime()
-
cycleCount
The number of times the media will be played. By default,cycleCount
is set to1
meaning the media will only be played once. SettingcycleCount
to a value greater than 1 will cause the media to play the given number of times or until stopped. If set toINDEFINITE
, playback will repeat until stop() or pause() is called.constraints:
cycleCount ≥ 1
- See Also:
getCycleCount()
,setCycleCount(int)
-
currentCount
The number of completed playback cycles. On the first pass, the value should be 0. On the second pass, the value should be 1 and so on. It is incremented at the end of each cycle just prior to seeking back tostartTime
, i.e., whenstopTime
or the end of media has been reached.- See Also:
getCurrentCount()
-
mute
Whether the player audio is muted. A value oftrue
indicates that audio is not being produced. The value of this property has no effect onvolume
, i.e., if the audio is muted and then un-muted, audio playback will resume at the same audible level provided of course that thevolume
property has not been modified meanwhile. The default value isfalse
.- See Also:
isMute()
,setMute(boolean)
-
onMarker
Event handler invoked when the playercurrentTime
reaches a media marker.- See Also:
getOnMarker()
,setOnMarker(EventHandler)
-
onEndOfMedia
Event handler invoked when the playercurrentTime
reachesstopTime
.- See Also:
getOnEndOfMedia()
,setOnEndOfMedia(Runnable)
-
onReady
Event handler invoked when the status changes toREADY
.- See Also:
getOnReady()
,setOnReady(Runnable)
-
onPlaying
Event handler invoked when the status changes toPLAYING
.- See Also:
getOnPlaying()
,setOnPlaying(Runnable)
-
onPaused
Event handler invoked when the status changes toPAUSED
.- See Also:
getOnPaused()
,setOnPaused(Runnable)
-
onStopped
Event handler invoked when the status changes toSTOPPED
.- See Also:
getOnStopped()
,setOnStopped(Runnable)
-
onHalted
Event handler invoked when the status changes toHALTED
.- See Also:
getOnHalted()
,setOnHalted(Runnable)
-
onRepeat
Event handler invoked when the playercurrentTime
reachesstopTime
and will be repeating. This callback is made prior to seeking back tostartTime
.- See Also:
getOnRepeat()
,setOnRepeat(Runnable)
-
onStalled
Event handler invoked when the status changes toSTALLED
.- See Also:
getOnStalled()
,setOnStalled(Runnable)
-
audioSpectrumNumBands
The number of bands in the audio spectrum. The default value is 128; minimum is 2. The frequency range of the audio signal will be divided into the specified number of frequency bins. For example, a typical digital music signal has a frequency range of[0.0, 22050]
Hz. If the number of spectral bands were in this case set to 10, the width of each frequency bin in the spectrum would be2205
Hz with the lower bound of the lowest frequency bin equal to0.0
. -
audioSpectrumInterval
The interval between spectrum updates in seconds. The default is0.1
seconds. -
audioSpectrumThreshold
The sensitivity threshold in decibels; must be non-positive. Values below this threshold with respect to the peak frequency in the given spectral band will be set to the value of the threshold. The default value is -60 dB. -
audioSpectrumListener
A listener for audio spectrum updates. When the listener is registered, audio spectrum computation is enabled; upon removing the listener, computation is disabled. Only a single listener may be registered, so if multiple observers are required, events must be forwarded.An
AudioSpectrumListener
may be useful for example to plot the frequency spectrum of the audio being played or to generate waveforms for a music visualizer.
-
-
Field Details
-
INDEFINITE
public static final int INDEFINITEA value representing an effectively infinite number of playback cycles. WhencycleCount
is set to this value, the player will replay theMedia
until stopped or paused.- See Also:
- Constant Field Values
-
-
Constructor Details
-
MediaPlayer
Create a player for a specific media. This is the only way to associate aMedia
object with aMediaPlayer
: once the player is created it cannot be changed. Errors which occur synchronously within the constructor will cause exceptions to be thrown. Errors which occur asynchronously will cause theerror
property to be set and consequently anyonError
callback to be invoked.When created, the
status
of the player will beMediaPlayer.Status.UNKNOWN
. Once thestatus
has transitioned toMediaPlayer.Status.READY
the player will be in a usable condition. The amount of time between player creation and its enteringREADY
status may vary depending, for example, on whether the media is being read over a network connection or from a local file system.- Parameters:
media
- The media to play.- Throws:
NullPointerException
- if media isnull
.MediaException
- if any synchronous errors occur within the constructor.
-
-
Method Details
-
getAudioEqualizer
Retrieve theAudioEqualizer
associated with this player.- Returns:
- the
AudioEqualizer
ornull
if player is disposed.
-
getError
Retrieve the value of theerror
property ornull
if there is no error.- Returns:
- a
MediaException
ornull
.
-
errorProperty
Observable property set to aMediaException
if an error occurs.- See Also:
getError()
-
setOnError
Sets the event handler to be called when an error occurs.- Parameters:
value
- the event handler ornull
.
-
getOnError
Retrieves the event handler for errors.- Returns:
- the event handler.
-
onErrorProperty
Event handler invoked when an error occurs.- See Also:
getOnError()
,setOnError(Runnable)
-
getMedia
Retrieves theMedia
instance being played.- Returns:
- the
Media
object.
-
setAutoPlay
public final void setAutoPlay(boolean value)Sets theautoPlay
property value.- Parameters:
value
- whether to enable auto-playback
-
isAutoPlay
public final boolean isAutoPlay()Retrieves theautoPlay
property value.- Returns:
- the value.
-
autoPlayProperty
Whether playing should start as soon as possible. For a new player this will occur once the player has reached the READY state. The default value isfalse
.- See Also:
isAutoPlay()
,setAutoPlay(boolean)
-
play
public void play()Starts playing the media. If previously paused, then playback resumes where it was paused. If playback was stopped, playback starts from thestartTime
. When playing actually starts thestatus
will be set toMediaPlayer.Status.PLAYING
. -
pause
public void pause()Pauses the player. Once the player is actually paused thestatus
will be set toMediaPlayer.Status.PAUSED
. -
stop
public void stop()Stops playing the media. This operation resets playback tostartTime
, and resetscurrentCount
to zero. Once the player is actually stopped, thestatus
will be set toMediaPlayer.Status.STOPPED
. The only transitions out ofSTOPPED
status are toMediaPlayer.Status.PAUSED
andMediaPlayer.Status.PLAYING
which occur after invokingpause()
orplay()
, respectively. While stopped, the player will not respond to playback position changes requested byseek(javafx.util.Duration)
. -
setRate
public final void setRate(double value)Sets the playback rate to the supplied value. Its effect will be clamped to the range[0.0, 8.0]
. Invoking this method will have no effect if media duration isDuration.INDEFINITE
.- Parameters:
value
- the playback rate
-
getRate
public final double getRate()Retrieves the playback rate.- Returns:
- the playback rate
-
rateProperty
The rate at which the media should be played. For example, a rate of1.0
plays the media at its normal (encoded) playback rate,2.0
plays back at twice the normal rate, etc. The currently supported range of rates is[0.0, 8.0]
. The default value is1.0
.- See Also:
getRate()
,setRate(double)
-
getCurrentRate
public final double getCurrentRate()Retrieves the current playback rate.- Returns:
- the current rate
-
currentRateProperty
The current rate of playback regardless of settings. For example, ifrate
is set to 1.0 and the player is paused or stalled, thencurrentRate
will be zero.- See Also:
getCurrentRate()
-
setVolume
public final void setVolume(double value)Sets the audio playback volume. Its effect will be clamped to the range[0.0, 1.0]
.- Parameters:
value
- the volume
-
getVolume
public final double getVolume()Retrieves the audio playback volume. The default value is1.0
.- Returns:
- the audio volume
-
volumeProperty
The volume at which the media should be played. The range of effective values is[0.0 1.0]
where0.0
is inaudible and1.0
is full volume, which is the default.- See Also:
getVolume()
,setVolume(double)
-
setBalance
public final void setBalance(double value)Sets the audio balance. Its effect will be clamped to the range[-1.0, 1.0]
.- Parameters:
value
- the balance
-
getBalance
public final double getBalance()Retrieves the audio balance.- Returns:
- the audio balance
-
balanceProperty
The balance, or left-right setting, of the audio output. The range of effective values is[-1.0, 1.0]
with-1.0
being full left,0.0
center, and1.0
full right. The default value is0.0
.- See Also:
getBalance()
,setBalance(double)
-
setStartTime
Sets the start time. Its effect will be clamped to the range[
. Invoking this method will have no effect if media duration isDuration.ZERO
,stopTime
)Duration.INDEFINITE
.- Parameters:
value
- the start time
-
getStartTime
Retrieves the start time. The default value isDuration.ZERO
.- Returns:
- the start time
-
startTimeProperty
The time offset where media should start playing, or restart from when repeating. When playback is stopped, the current time is reset to this value. If this value is positive, then the first time the media is played there might be a delay before playing begins unless the play position can be set to an arbitrary time within the media. This could occur for example for a video which does not contain a lookup table of the offsets of intra-frames in the video stream. In such a case the video frames would need to be skipped over until the position of the first intra-frame before the start time was reached. The default value isDuration.ZERO
.Constraints:
0 ≤ startTime <
stopTime
- See Also:
getStartTime()
,setStartTime(Duration)
-
setStopTime
Sets the stop time. Its effect will be clamped to the range(
. Invoking this method will have no effect if media duration isstartTime
,Media.duration
]Duration.INDEFINITE
.- Parameters:
value
- the stop time
-
getStopTime
Retrieves the stop time. The default value is
. Note thatgetMedia()
.getDuration()
may have the valueMedia.duration
Duration.UNKNOWN
if media initialization is not complete.- Returns:
- the stop time
-
stopTimeProperty
The time offset where media should stop playing or restart when repeating. The default value is
.getMedia()
.getDuration()Constraints:
startTime
< stopTime ≤Media.duration
- See Also:
getStopTime()
,setStopTime(Duration)
-
getCycleDuration
Retrieves the cycle duration in seconds.- Returns:
- the cycle duration
-
cycleDurationProperty
The amount of time between thestartTime
andstopTime
of this player. For the total duration of the Media use theMedia.duration
property.- See Also:
getCycleDuration()
-
getTotalDuration
Retrieves the total playback duration including all cycles (repetitions).- Returns:
- the total playback duration
-
totalDurationProperty
The total amount of play time if allowed to play until finished. IfcycleCount
is set toINDEFINITE
then this will also be INDEFINITE. If the Media duration is UNKNOWN, then this will likewise be UNKNOWN. Otherwise, total duration will be the product of cycleDuration and cycleCount.- See Also:
getTotalDuration()
-
getCurrentTime
Retrieves the current media time.- Returns:
- the current media time
-
currentTimeProperty
The current media playback time. This property is read-only: useseek(javafx.util.Duration)
to change playback to a different stream position.- See Also:
getCurrentTime()
-
seek
Seeks the player to a new playback time. Invoking this method will have no effect while the player status isMediaPlayer.Status.STOPPED
or media duration isDuration.INDEFINITE
.The behavior of
seek()
is constrained as follows where start time and stop time indicate the effective lower and upper bounds, respectively, of media playback:MediaPlayer Seek Table seekTime seek position null
no change Duration.UNKNOWN
no change Duration.INDEFINITE
stop time seekTime < start time start time seekTime > stop time stop time start time ≤ seekTime ≤ stop time seekTime - Parameters:
seekTime
- the requested playback time
-
getStatus
Retrieves the current player status.- Returns:
- the playback status
-
statusProperty
The current state of the MediaPlayer.- See Also:
getStatus()
-
getBufferProgressTime
Retrieves thebufferProgressTime
value.- Returns:
- the buffer progress time
-
bufferProgressTimeProperty
The current buffer position indicating how much media can be played without stalling theMediaPlayer
. This is applicable to buffered streams such as those reading from network connections as opposed for example to local files.Seeking to a position beyond
bufferProgressTime
might cause a slight pause in playback until an amount of data sufficient to permit playback resumption has been buffered.- See Also:
getBufferProgressTime()
-
setCycleCount
public final void setCycleCount(int value)Sets the cycle count. Its effect will be constrained to[1,
. Invoking this method will have no effect if media duration isInteger.MAX_VALUE
]Duration.INDEFINITE
.- Parameters:
value
- the cycle count
-
getCycleCount
public final int getCycleCount()Retrieves the cycle count.- Returns:
- the cycle count.
-
cycleCountProperty
The number of times the media will be played. By default,cycleCount
is set to1
meaning the media will only be played once. SettingcycleCount
to a value greater than 1 will cause the media to play the given number of times or until stopped. If set toINDEFINITE
, playback will repeat until stop() or pause() is called.constraints:
cycleCount ≥ 1
- See Also:
getCycleCount()
,setCycleCount(int)
-
getCurrentCount
public final int getCurrentCount()Retrieves the index of the current cycle.- Returns:
- the current cycle index
-
currentCountProperty
The number of completed playback cycles. On the first pass, the value should be 0. On the second pass, the value should be 1 and so on. It is incremented at the end of each cycle just prior to seeking back tostartTime
, i.e., whenstopTime
or the end of media has been reached.- See Also:
getCurrentCount()
-
setMute
public final void setMute(boolean value)Sets the value ofmuteProperty()
.- Parameters:
value
- themute
setting
-
isMute
public final boolean isMute()Retrieves themuteProperty()
value.- Returns:
- the mute setting
-
muteProperty
Whether the player audio is muted. A value oftrue
indicates that audio is not being produced. The value of this property has no effect onvolume
, i.e., if the audio is muted and then un-muted, audio playback will resume at the same audible level provided of course that thevolume
property has not been modified meanwhile. The default value isfalse
.- See Also:
isMute()
,setMute(boolean)
-
setOnMarker
Sets the marker event handler.- Parameters:
onMarker
- the marker event handler.
-
getOnMarker
Retrieves the marker event handler.- Returns:
- the marker event handler.
-
onMarkerProperty
Event handler invoked when the playercurrentTime
reaches a media marker.- See Also:
getOnMarker()
,setOnMarker(EventHandler)
-
setOnEndOfMedia
Sets the end of media event handler.- Parameters:
value
- the event handler ornull
.
-
getOnEndOfMedia
Retrieves the end of media event handler.- Returns:
- the event handler or
null
.
-
onEndOfMediaProperty
Event handler invoked when the playercurrentTime
reachesstopTime
.- See Also:
getOnEndOfMedia()
,setOnEndOfMedia(Runnable)
-
setOnReady
Sets theMediaPlayer.Status.READY
event handler.- Parameters:
value
- the event handler ornull
.
-
getOnReady
Retrieves theMediaPlayer.Status.READY
event handler.- Returns:
- the event handler or
null
.
-
onReadyProperty
Event handler invoked when the status changes toREADY
.- See Also:
getOnReady()
,setOnReady(Runnable)
-
setOnPlaying
Sets theMediaPlayer.Status.PLAYING
event handler.- Parameters:
value
- the event handler ornull
.
-
getOnPlaying
Retrieves theMediaPlayer.Status.PLAYING
event handler.- Returns:
- the event handler or
null
.
-
onPlayingProperty
Event handler invoked when the status changes toPLAYING
.- See Also:
getOnPlaying()
,setOnPlaying(Runnable)
-
setOnPaused
Sets theMediaPlayer.Status.PAUSED
event handler.- Parameters:
value
- the event handler ornull
.
-
getOnPaused
Retrieves theMediaPlayer.Status.PAUSED
event handler.- Returns:
- the event handler or
null
.
-
onPausedProperty
Event handler invoked when the status changes toPAUSED
.- See Also:
getOnPaused()
,setOnPaused(Runnable)
-
setOnStopped
Sets theMediaPlayer.Status.STOPPED
event handler.- Parameters:
value
- the event handler ornull
.
-
getOnStopped
Retrieves theMediaPlayer.Status.STOPPED
event handler.- Returns:
- the event handler or
null
.
-
onStoppedProperty
Event handler invoked when the status changes toSTOPPED
.- See Also:
getOnStopped()
,setOnStopped(Runnable)
-
setOnHalted
Sets theMediaPlayer.Status.HALTED
event handler.- Parameters:
value
- the event handler ornull
.
-
getOnHalted
Retrieves theMediaPlayer.Status.HALTED
event handler.- Returns:
- the event handler or
null
.
-
onHaltedProperty
Event handler invoked when the status changes toHALTED
.- See Also:
getOnHalted()
,setOnHalted(Runnable)
-
setOnRepeat
Sets the repeat event handler.- Parameters:
value
- the event handler ornull
.
-
getOnRepeat
Retrieves the repeat event handler.- Returns:
- the event handler or
null
.
-
onRepeatProperty
Event handler invoked when the playercurrentTime
reachesstopTime
and will be repeating. This callback is made prior to seeking back tostartTime
.- See Also:
getOnRepeat()
,setOnRepeat(Runnable)
-
setOnStalled
Sets theMediaPlayer.Status.STALLED
event handler.- Parameters:
value
- the event handler ornull
.
-
getOnStalled
Retrieves theMediaPlayer.Status.STALLED
event handler.- Returns:
- the event handler or
null
.
-
onStalledProperty
Event handler invoked when the status changes toSTALLED
.- See Also:
getOnStalled()
,setOnStalled(Runnable)
-
setAudioSpectrumNumBands
public final void setAudioSpectrumNumBands(int value)Sets the number of bands in the audio spectrum.- Parameters:
value
- the number of spectral bands;value
must be ≥ 2
-
getAudioSpectrumNumBands
public final int getAudioSpectrumNumBands()Retrieves the number of bands in the audio spectrum.- Returns:
- the number of spectral bands.
-
audioSpectrumNumBandsProperty
The number of bands in the audio spectrum. The default value is 128; minimum is 2. The frequency range of the audio signal will be divided into the specified number of frequency bins. For example, a typical digital music signal has a frequency range of[0.0, 22050]
Hz. If the number of spectral bands were in this case set to 10, the width of each frequency bin in the spectrum would be2205
Hz with the lower bound of the lowest frequency bin equal to0.0
. -
setAudioSpectrumInterval
public final void setAudioSpectrumInterval(double value)Sets the value of the audio spectrum notification interval in seconds.- Parameters:
value
- a positive value specifying the spectral update interval
-
getAudioSpectrumInterval
public final double getAudioSpectrumInterval()Retrieves the value of the audio spectrum notification interval in seconds.- Returns:
- the spectral update interval
-
audioSpectrumIntervalProperty
The interval between spectrum updates in seconds. The default is0.1
seconds. -
setAudioSpectrumThreshold
public final void setAudioSpectrumThreshold(int value)Sets the audio spectrum threshold in decibels.- Parameters:
value
- the spectral threshold in dB; must be ≤0
.
-
getAudioSpectrumThreshold
public final int getAudioSpectrumThreshold()Retrieves the audio spectrum threshold in decibels.- Returns:
- the spectral threshold in dB
-
audioSpectrumThresholdProperty
The sensitivity threshold in decibels; must be non-positive. Values below this threshold with respect to the peak frequency in the given spectral band will be set to the value of the threshold. The default value is -60 dB. -
setAudioSpectrumListener
Sets the listener of the audio spectrum.- Parameters:
listener
- the spectral listener ornull
.
-
getAudioSpectrumListener
Retrieves the listener of the audio spectrum.- Returns:
- the spectral listener or
null
-
audioSpectrumListenerProperty
A listener for audio spectrum updates. When the listener is registered, audio spectrum computation is enabled; upon removing the listener, computation is disabled. Only a single listener may be registered, so if multiple observers are required, events must be forwarded.An
AudioSpectrumListener
may be useful for example to plot the frequency spectrum of the audio being played or to generate waveforms for a music visualizer. -
dispose
public void dispose()Free all resources associated with player. Player SHOULD NOT be used after this function is called. Player will transition toMediaPlayer.Status.DISPOSED
after this method is done. This method can be called anytime regardless of current player status.- Since:
- JavaFX 8.0
-