- java.lang.Object
-
- javafx.scene.media.MediaPlayer
-
public final class MediaPlayer extends Object
TheMediaPlayerclass provides the controls for playing media. It is used in combination with theMediaandMediaViewclasses to display and control media playback.MediaPlayerdoes not contain any visual elements so must be used with theMediaViewclass to view any video track which may be present.MediaPlayerprovides thepause(),play(),stop()andseek()controls as well as therateandautoPlayproperties which apply to all types of media. It also provides thebalance,mute, andvolumeproperties which control audio playback characteristics. Further control over audio quality may be attained via theAudioEqualizerassociated with the player. Frequency descriptors of audio playback may be observed by registering anAudioSpectrumListener. Information about playback position, rate, and buffering may be obtained from thecurrentTime,currentRate, andbufferProgressTimeproperties, respectively. Media marker notifications are received by an event handler registered as theonMarkerproperty.For finite duration media, playback may be positioned at any point in time between
0.0and the duration of the media.MediaPlayerrefines this definition by adding thestartTimeandstopTimeproperties which in effect define a virtual media source with time position constrained to[startTime,stopTime]. Media playback commences atstartTimeand continues tostopTime. 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 theonRepeatproperty is invoked. If the stop time is reached and the cycle is not to be repeated, then the event handler registered with theonEndOfMediaproperty is invoked. A zero-relative index of which cycle is presently being played is maintained bycurrentCount.The operation of a
MediaPlayeris inherently asynchronous. A player is not prepared to respond to commands quasi-immediately until its status has transitioned toMediaPlayer.Status.READY, which in effect generally occurs when media pre-roll completes. Some requests made of a player prior to its status beingREADYwill however take effect when that status is entered. These include invokingplay()without an intervening invocation ofpause()orstop()before theREADYtransition, as well as setting any of theautoPlay,balance,mute,rate,startTime,stopTime, andvolumeproperties.The
statusproperty may be monitored to make the application aware of player status changes, and callback functions may be registered via properties such asonReadyif an action should be taken when a particular status is entered. There are alsoerrorandonErrorproperties which respectively enable monitoring when an error occurs and taking a specified action in response thereto.The same
MediaPlayerobject may be shared among multipleMediaViews. 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 DoublePropertyaudioSpectrumIntervalThe interval between spectrum updates in seconds.ObjectProperty<AudioSpectrumListener>audioSpectrumListenerA listener for audio spectrum updates.IntegerPropertyaudioSpectrumNumBandsThe number of bands in the audio spectrum.IntegerPropertyaudioSpectrumThresholdThe sensitivity threshold in decibels; must be non-positive.BooleanPropertyautoPlayWhether playing should start as soon as possible.DoublePropertybalanceThe balance, or left-right setting, of the audio output.ReadOnlyObjectProperty<Duration>bufferProgressTimeThe current buffer position indicating how much media can be played without stalling theMediaPlayer.ReadOnlyIntegerPropertycurrentCountThe number of completed playback cycles.ReadOnlyDoublePropertycurrentRateThe current rate of playback regardless of settings.ReadOnlyObjectProperty<Duration>currentTimeThe current media playback time.IntegerPropertycycleCountThe number of times the media will be played.ReadOnlyObjectProperty<Duration>cycleDurationReadOnlyObjectProperty<MediaException>errorObservable property set to aMediaExceptionif an error occurs.BooleanPropertymuteWhether the player audio is muted.ObjectProperty<Runnable>onEndOfMediaEvent handler invoked when the playercurrentTimereachesstopTime.ObjectProperty<Runnable>onErrorEvent handler invoked when an error occurs.ObjectProperty<Runnable>onHaltedEvent handler invoked when the status changes toHALTED.ObjectProperty<EventHandler<MediaMarkerEvent>>onMarkerEvent handler invoked when the playercurrentTimereaches a media marker.ObjectProperty<Runnable>onPausedEvent handler invoked when the status changes toPAUSED.ObjectProperty<Runnable>onPlayingEvent handler invoked when the status changes toPLAYING.ObjectProperty<Runnable>onReadyEvent handler invoked when the status changes toREADY.ObjectProperty<Runnable>onRepeatEvent handler invoked when the playercurrentTimereachesstopTimeand will be repeating.ObjectProperty<Runnable>onStalledEvent handler invoked when the status changes toSTALLED.ObjectProperty<Runnable>onStoppedEvent handler invoked when the status changes toSTOPPED.DoublePropertyrateThe rate at which the media should be played.ObjectProperty<Duration>startTimeThe time offset where media should start playing, or restart from when repeating.ReadOnlyObjectProperty<MediaPlayer.Status>statusThe current state of the MediaPlayer.ObjectProperty<Duration>stopTimeThe time offset where media should stop playing or restart when repeating.ReadOnlyObjectProperty<Duration>totalDurationThe total amount of play time if allowed to play until finished.DoublePropertyvolumeThe volume at which the media should be played.
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classMediaPlayer.StatusEnumeration describing the different status values of aMediaPlayer.
-
Field Summary
Fields Modifier and Type Field Description static intINDEFINITEA 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
All Methods Instance Methods Concrete Methods Modifier and Type Method Description DoublePropertyaudioSpectrumIntervalProperty()The interval between spectrum updates in seconds.ObjectProperty<AudioSpectrumListener>audioSpectrumListenerProperty()A listener for audio spectrum updates.IntegerPropertyaudioSpectrumNumBandsProperty()The number of bands in the audio spectrum.IntegerPropertyaudioSpectrumThresholdProperty()The sensitivity threshold in decibels; must be non-positive.BooleanPropertyautoPlayProperty()Whether playing should start as soon as possible.DoublePropertybalanceProperty()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.ReadOnlyIntegerPropertycurrentCountProperty()The number of completed playback cycles.ReadOnlyDoublePropertycurrentRateProperty()The current rate of playback regardless of settings.ReadOnlyObjectProperty<Duration>currentTimeProperty()The current media playback time.IntegerPropertycycleCountProperty()The number of times the media will be played.ReadOnlyObjectProperty<Duration>cycleDurationProperty()voiddispose()Free all resources associated with player.ReadOnlyObjectProperty<MediaException>errorProperty()Observable property set to aMediaExceptionif an error occurs.AudioEqualizergetAudioEqualizer()Retrieve theAudioEqualizerassociated with this player.doublegetAudioSpectrumInterval()Retrieves the value of the audio spectrum notification interval in seconds.AudioSpectrumListenergetAudioSpectrumListener()Retrieves the listener of the audio spectrum.intgetAudioSpectrumNumBands()Retrieves the number of bands in the audio spectrum.intgetAudioSpectrumThreshold()Retrieves the audio spectrum threshold in decibels.doublegetBalance()Retrieves the audio balance.DurationgetBufferProgressTime()Retrieves thebufferProgressTimevalue.intgetCurrentCount()Retrieves the index of the current cycle.doublegetCurrentRate()Retrieves the current playback rate.DurationgetCurrentTime()Retrieves the current media time.intgetCycleCount()Retrieves the cycle count.DurationgetCycleDuration()Retrieves the cycle duration in seconds.MediaExceptiongetError()Retrieve the value of theerrorproperty ornullif there is no error.MediagetMedia()Retrieves theMediainstance being played.RunnablegetOnEndOfMedia()Retrieves the end of media event handler.RunnablegetOnError()Retrieves the event handler for errors.RunnablegetOnHalted()Retrieves theMediaPlayer.Status.HALTEDevent handler.EventHandler<MediaMarkerEvent>getOnMarker()Retrieves the marker event handler.RunnablegetOnPaused()Retrieves theMediaPlayer.Status.PAUSEDevent handler.RunnablegetOnPlaying()Retrieves theMediaPlayer.Status.PLAYINGevent handler.RunnablegetOnReady()Retrieves theMediaPlayer.Status.READYevent handler.RunnablegetOnRepeat()Retrieves the repeat event handler.RunnablegetOnStalled()Retrieves theMediaPlayer.Status.STALLEDevent handler.RunnablegetOnStopped()Retrieves theMediaPlayer.Status.STOPPEDevent handler.doublegetRate()Retrieves the playback rate.DurationgetStartTime()Retrieves the start time.MediaPlayer.StatusgetStatus()Retrieves the current player status.DurationgetStopTime()Retrieves the stop time.DurationgetTotalDuration()Retrieves the total playback duration including all cycles (repetitions).doublegetVolume()Retrieves the audio playback volume.booleanisAutoPlay()Retrieves theautoPlayproperty value.booleanisMute()Retrieves themuteProperty()value.BooleanPropertymuteProperty()Whether the player audio is muted.ObjectProperty<Runnable>onEndOfMediaProperty()Event handler invoked when the playercurrentTimereachesstopTime.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 playercurrentTimereaches 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 playercurrentTimereachesstopTimeand 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.voidpause()Pauses the player.voidplay()Starts playing the media.DoublePropertyrateProperty()The rate at which the media should be played.voidseek(Duration seekTime)Seeks the player to a new playback time.voidsetAudioSpectrumInterval(double value)Sets the value of the audio spectrum notification interval in seconds.voidsetAudioSpectrumListener(AudioSpectrumListener listener)Sets the listener of the audio spectrum.voidsetAudioSpectrumNumBands(int value)Sets the number of bands in the audio spectrum.voidsetAudioSpectrumThreshold(int value)Sets the audio spectrum threshold in decibels.voidsetAutoPlay(boolean value)Sets theautoPlayproperty value.voidsetBalance(double value)Sets the audio balance.voidsetCycleCount(int value)Sets the cycle count.voidsetMute(boolean value)Sets the value ofmuteProperty().voidsetOnEndOfMedia(Runnable value)Sets the end of media event handler.voidsetOnError(Runnable value)Sets the event handler to be called when an error occurs.voidsetOnHalted(Runnable value)Sets theMediaPlayer.Status.HALTEDevent handler.voidsetOnMarker(EventHandler<MediaMarkerEvent> onMarker)Sets the marker event handler.voidsetOnPaused(Runnable value)Sets theMediaPlayer.Status.PAUSEDevent handler.voidsetOnPlaying(Runnable value)Sets theMediaPlayer.Status.PLAYINGevent handler.voidsetOnReady(Runnable value)Sets theMediaPlayer.Status.READYevent handler.voidsetOnRepeat(Runnable value)Sets the repeat event handler.voidsetOnStalled(Runnable value)Sets theMediaPlayer.Status.STALLEDevent handler.voidsetOnStopped(Runnable value)Sets theMediaPlayer.Status.STOPPEDevent handler.voidsetRate(double value)Sets the playback rate to the supplied value.voidsetStartTime(Duration value)Sets the start time.voidsetStopTime(Duration value)Sets the stop time.voidsetVolume(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.voidstop()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.DoublePropertyvolumeProperty()The volume at which the media should be played.
-
-
-
Property Detail
-
error
public ReadOnlyObjectProperty<MediaException> errorProperty
Observable property set to aMediaExceptionif an error occurs.- See Also:
getError()
-
onError
public ObjectProperty<Runnable> onErrorProperty
Event handler invoked when an error occurs.- See Also:
getOnError(),setOnError(Runnable)
-
autoPlay
public BooleanProperty 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)
-
rate
public DoubleProperty rateProperty
The rate at which the media should be played. For example, a rate of1.0plays the media at its normal (encoded) playback rate,2.0plays 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
public ReadOnlyDoubleProperty currentRateProperty
The current rate of playback regardless of settings. For example, ifrateis set to 1.0 and the player is paused or stalled, thencurrentRatewill be zero.- See Also:
getCurrentRate()
-
volume
public DoubleProperty volumeProperty
The volume at which the media should be played. The range of effective values is[0.0 1.0]where0.0is inaudible and1.0is full volume, which is the default.- See Also:
getVolume(),setVolume(double)
-
balance
public DoubleProperty balanceProperty
The balance, or left-right setting, of the audio output. The range of effective values is[-1.0, 1.0]with-1.0being full left,0.0center, and1.0full right. The default value is0.0.- See Also:
getBalance(),setBalance(double)
-
startTime
public ObjectProperty<Duration> 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)
-
stopTime
public ObjectProperty<Duration> 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)
-
cycleDuration
public ReadOnlyObjectProperty<Duration> cycleDurationProperty
The amount of time between thestartTimeandstopTimeof this player. For the total duration of the Media use theMedia.durationproperty.- See Also:
getCycleDuration()
-
totalDuration
public ReadOnlyObjectProperty<Duration> totalDurationProperty
The total amount of play time if allowed to play until finished. IfcycleCountis set toINDEFINITEthen 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
public ReadOnlyObjectProperty<Duration> 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()
-
status
public ReadOnlyObjectProperty<MediaPlayer.Status> statusProperty
The current state of the MediaPlayer.- See Also:
getStatus()
-
bufferProgressTime
public ReadOnlyObjectProperty<Duration> 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
bufferProgressTimemight cause a slight pause in playback until an amount of data sufficient to permit playback resumption has been buffered.- See Also:
getBufferProgressTime()
-
cycleCount
public IntegerProperty cycleCountProperty
The number of times the media will be played. By default,cycleCountis set to1meaning the media will only be played once. SettingcycleCountto 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
public ReadOnlyIntegerProperty 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., whenstopTimeor the end of media has been reached.- See Also:
getCurrentCount()
-
mute
public BooleanProperty muteProperty
Whether the player audio is muted. A value oftrueindicates 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 thevolumeproperty has not been modified meanwhile. The default value isfalse.- See Also:
isMute(),setMute(boolean)
-
onMarker
public ObjectProperty<EventHandler<MediaMarkerEvent>> onMarkerProperty
Event handler invoked when the playercurrentTimereaches a media marker.- See Also:
getOnMarker(),setOnMarker(EventHandler)
-
onEndOfMedia
public ObjectProperty<Runnable> onEndOfMediaProperty
Event handler invoked when the playercurrentTimereachesstopTime.- See Also:
getOnEndOfMedia(),setOnEndOfMedia(Runnable)
-
onReady
public ObjectProperty<Runnable> onReadyProperty
Event handler invoked when the status changes toREADY.- See Also:
getOnReady(),setOnReady(Runnable)
-
onPlaying
public ObjectProperty<Runnable> onPlayingProperty
Event handler invoked when the status changes toPLAYING.- See Also:
getOnPlaying(),setOnPlaying(Runnable)
-
onPaused
public ObjectProperty<Runnable> onPausedProperty
Event handler invoked when the status changes toPAUSED.- See Also:
getOnPaused(),setOnPaused(Runnable)
-
onStopped
public ObjectProperty<Runnable> onStoppedProperty
Event handler invoked when the status changes toSTOPPED.- See Also:
getOnStopped(),setOnStopped(Runnable)
-
onHalted
public ObjectProperty<Runnable> onHaltedProperty
Event handler invoked when the status changes toHALTED.- See Also:
getOnHalted(),setOnHalted(Runnable)
-
onRepeat
public ObjectProperty<Runnable> onRepeatProperty
Event handler invoked when the playercurrentTimereachesstopTimeand will be repeating. This callback is made prior to seeking back tostartTime.- See Also:
getOnRepeat(),setOnRepeat(Runnable)
-
onStalled
public ObjectProperty<Runnable> onStalledProperty
Event handler invoked when the status changes toSTALLED.- See Also:
getOnStalled(),setOnStalled(Runnable)
-
audioSpectrumNumBands
public IntegerProperty 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 be2205Hz with the lower bound of the lowest frequency bin equal to0.0.
-
audioSpectrumInterval
public DoubleProperty audioSpectrumIntervalProperty
The interval between spectrum updates in seconds. The default is0.1seconds.
-
audioSpectrumThreshold
public IntegerProperty 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.
-
audioSpectrumListener
public ObjectProperty<AudioSpectrumListener> 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
AudioSpectrumListenermay be useful for example to plot the frequency spectrum of the audio being played or to generate waveforms for a music visualizer.
-
-
Field Detail
-
INDEFINITE
public static final int INDEFINITE
A value representing an effectively infinite number of playback cycles. WhencycleCountis set to this value, the player will replay theMediauntil stopped or paused.- See Also:
- Constant Field Values
-
-
Constructor Detail
-
MediaPlayer
public MediaPlayer(Media media)
Create a player for a specific media. This is the only way to associate aMediaobject 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 theerrorproperty to be set and consequently anyonErrorcallback to be invoked.When created, the
statusof the player will beMediaPlayer.Status.UNKNOWN. Once thestatushas transitioned toMediaPlayer.Status.READYthe player will be in a usable condition. The amount of time between player creation and its enteringREADYstatus 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 Detail
-
getAudioEqualizer
public final AudioEqualizer getAudioEqualizer()
Retrieve theAudioEqualizerassociated with this player.- Returns:
- the
AudioEqualizerornullif player is disposed.
-
getError
public final MediaException getError()
Retrieve the value of theerrorproperty ornullif there is no error.- Returns:
- a
MediaExceptionornull.
-
errorProperty
public ReadOnlyObjectProperty<MediaException> errorProperty()
Observable property set to aMediaExceptionif an error occurs.- See Also:
getError()
-
setOnError
public final void setOnError(Runnable value)
Sets the event handler to be called when an error occurs.- Parameters:
value- the event handler ornull.
-
getOnError
public final Runnable getOnError()
Retrieves the event handler for errors.- Returns:
- the event handler.
-
onErrorProperty
public ObjectProperty<Runnable> onErrorProperty()
Event handler invoked when an error occurs.- See Also:
getOnError(),setOnError(Runnable)
-
getMedia
public final Media getMedia()
Retrieves theMediainstance being played.- Returns:
- the
Mediaobject.
-
setAutoPlay
public final void setAutoPlay(boolean value)
Sets theautoPlayproperty value.- Parameters:
value- whether to enable auto-playback
-
isAutoPlay
public final boolean isAutoPlay()
Retrieves theautoPlayproperty value.- Returns:
- the value.
-
autoPlayProperty
public BooleanProperty 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 thestatuswill be set toMediaPlayer.Status.PLAYING.
-
pause
public void pause()
Pauses the player. Once the player is actually paused thestatuswill be set toMediaPlayer.Status.PAUSED.
-
stop
public void stop()
Stops playing the media. This operation resets playback tostartTime, and resetscurrentCountto zero. Once the player is actually stopped, thestatuswill be set toMediaPlayer.Status.STOPPED. The only transitions out ofSTOPPEDstatus are toMediaPlayer.Status.PAUSEDandMediaPlayer.Status.PLAYINGwhich 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
public DoubleProperty rateProperty()
The rate at which the media should be played. For example, a rate of1.0plays the media at its normal (encoded) playback rate,2.0plays 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
public ReadOnlyDoubleProperty currentRateProperty()
The current rate of playback regardless of settings. For example, ifrateis set to 1.0 and the player is paused or stalled, thencurrentRatewill 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
public DoubleProperty volumeProperty()
The volume at which the media should be played. The range of effective values is[0.0 1.0]where0.0is inaudible and1.0is 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
public DoubleProperty balanceProperty()
The balance, or left-right setting, of the audio output. The range of effective values is[-1.0, 1.0]with-1.0being full left,0.0center, and1.0full right. The default value is0.0.- See Also:
getBalance(),setBalance(double)
-
setStartTime
public final void setStartTime(Duration value)
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
public final Duration getStartTime()
Retrieves the start time. The default value isDuration.ZERO.- Returns:
- the start time
-
startTimeProperty
public ObjectProperty<Duration> 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
public final void setStopTime(Duration value)
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
public final Duration getStopTime()
Retrieves the stop time. The default value is. Note thatgetMedia().getDuration()may have the valueMedia.durationDuration.UNKNOWNif media initialization is not complete.- Returns:
- the stop time
-
stopTimeProperty
public ObjectProperty<Duration> 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
public final Duration getCycleDuration()
Retrieves the cycle duration in seconds.- Returns:
- the cycle duration
-
cycleDurationProperty
public ReadOnlyObjectProperty<Duration> cycleDurationProperty()
The amount of time between thestartTimeandstopTimeof this player. For the total duration of the Media use theMedia.durationproperty.- See Also:
getCycleDuration()
-
getTotalDuration
public final Duration getTotalDuration()
Retrieves the total playback duration including all cycles (repetitions).- Returns:
- the total playback duration
-
totalDurationProperty
public ReadOnlyObjectProperty<Duration> totalDurationProperty()
The total amount of play time if allowed to play until finished. IfcycleCountis set toINDEFINITEthen 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
public final Duration getCurrentTime()
Retrieves the current media time.- Returns:
- the current media time
-
currentTimeProperty
public ReadOnlyObjectProperty<Duration> 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
public void seek(Duration seekTime)
Seeks the player to a new playback time. Invoking this method will have no effect while the player status isMediaPlayer.Status.STOPPEDor 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 nullno change Duration.UNKNOWNno change Duration.INDEFINITEstop time seekTime < start time start time seekTime > stop time stop time start time ≤ seekTime ≤ stop time seekTime - Parameters:
seekTime- the requested playback time
-
getStatus
public final MediaPlayer.Status getStatus()
Retrieves the current player status.- Returns:
- the playback status
-
statusProperty
public ReadOnlyObjectProperty<MediaPlayer.Status> statusProperty()
The current state of the MediaPlayer.- See Also:
getStatus()
-
getBufferProgressTime
public final Duration getBufferProgressTime()
Retrieves thebufferProgressTimevalue.- Returns:
- the buffer progress time
-
bufferProgressTimeProperty
public ReadOnlyObjectProperty<Duration> 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
bufferProgressTimemight 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
public IntegerProperty cycleCountProperty()
The number of times the media will be played. By default,cycleCountis set to1meaning the media will only be played once. SettingcycleCountto 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
public ReadOnlyIntegerProperty 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., whenstopTimeor the end of media has been reached.- See Also:
getCurrentCount()
-
setMute
public final void setMute(boolean value)
Sets the value ofmuteProperty().- Parameters:
value- themutesetting
-
isMute
public final boolean isMute()
Retrieves themuteProperty()value.- Returns:
- the mute setting
-
muteProperty
public BooleanProperty muteProperty()
Whether the player audio is muted. A value oftrueindicates 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 thevolumeproperty has not been modified meanwhile. The default value isfalse.- See Also:
isMute(),setMute(boolean)
-
setOnMarker
public final void setOnMarker(EventHandler<MediaMarkerEvent> onMarker)
Sets the marker event handler.- Parameters:
onMarker- the marker event handler.
-
getOnMarker
public final EventHandler<MediaMarkerEvent> getOnMarker()
Retrieves the marker event handler.- Returns:
- the marker event handler.
-
onMarkerProperty
public ObjectProperty<EventHandler<MediaMarkerEvent>> onMarkerProperty()
Event handler invoked when the playercurrentTimereaches a media marker.- See Also:
getOnMarker(),setOnMarker(EventHandler)
-
setOnEndOfMedia
public final void setOnEndOfMedia(Runnable value)
Sets the end of media event handler.- Parameters:
value- the event handler ornull.
-
getOnEndOfMedia
public final Runnable getOnEndOfMedia()
Retrieves the end of media event handler.- Returns:
- the event handler or
null.
-
onEndOfMediaProperty
public ObjectProperty<Runnable> onEndOfMediaProperty()
Event handler invoked when the playercurrentTimereachesstopTime.- See Also:
getOnEndOfMedia(),setOnEndOfMedia(Runnable)
-
setOnReady
public final void setOnReady(Runnable value)
Sets theMediaPlayer.Status.READYevent handler.- Parameters:
value- the event handler ornull.
-
getOnReady
public final Runnable getOnReady()
Retrieves theMediaPlayer.Status.READYevent handler.- Returns:
- the event handler or
null.
-
onReadyProperty
public ObjectProperty<Runnable> onReadyProperty()
Event handler invoked when the status changes toREADY.- See Also:
getOnReady(),setOnReady(Runnable)
-
setOnPlaying
public final void setOnPlaying(Runnable value)
Sets theMediaPlayer.Status.PLAYINGevent handler.- Parameters:
value- the event handler ornull.
-
getOnPlaying
public final Runnable getOnPlaying()
Retrieves theMediaPlayer.Status.PLAYINGevent handler.- Returns:
- the event handler or
null.
-
onPlayingProperty
public ObjectProperty<Runnable> onPlayingProperty()
Event handler invoked when the status changes toPLAYING.- See Also:
getOnPlaying(),setOnPlaying(Runnable)
-
setOnPaused
public final void setOnPaused(Runnable value)
Sets theMediaPlayer.Status.PAUSEDevent handler.- Parameters:
value- the event handler ornull.
-
getOnPaused
public final Runnable getOnPaused()
Retrieves theMediaPlayer.Status.PAUSEDevent handler.- Returns:
- the event handler or
null.
-
onPausedProperty
public ObjectProperty<Runnable> onPausedProperty()
Event handler invoked when the status changes toPAUSED.- See Also:
getOnPaused(),setOnPaused(Runnable)
-
setOnStopped
public final void setOnStopped(Runnable value)
Sets theMediaPlayer.Status.STOPPEDevent handler.- Parameters:
value- the event handler ornull.
-
getOnStopped
public final Runnable getOnStopped()
Retrieves theMediaPlayer.Status.STOPPEDevent handler.- Returns:
- the event handler or
null.
-
onStoppedProperty
public ObjectProperty<Runnable> onStoppedProperty()
Event handler invoked when the status changes toSTOPPED.- See Also:
getOnStopped(),setOnStopped(Runnable)
-
setOnHalted
public final void setOnHalted(Runnable value)
Sets theMediaPlayer.Status.HALTEDevent handler.- Parameters:
value- the event handler ornull.
-
getOnHalted
public final Runnable getOnHalted()
Retrieves theMediaPlayer.Status.HALTEDevent handler.- Returns:
- the event handler or
null.
-
onHaltedProperty
public ObjectProperty<Runnable> onHaltedProperty()
Event handler invoked when the status changes toHALTED.- See Also:
getOnHalted(),setOnHalted(Runnable)
-
setOnRepeat
public final void setOnRepeat(Runnable value)
Sets the repeat event handler.- Parameters:
value- the event handler ornull.
-
getOnRepeat
public final Runnable getOnRepeat()
Retrieves the repeat event handler.- Returns:
- the event handler or
null.
-
onRepeatProperty
public ObjectProperty<Runnable> onRepeatProperty()
Event handler invoked when the playercurrentTimereachesstopTimeand will be repeating. This callback is made prior to seeking back tostartTime.- See Also:
getOnRepeat(),setOnRepeat(Runnable)
-
setOnStalled
public final void setOnStalled(Runnable value)
Sets theMediaPlayer.Status.STALLEDevent handler.- Parameters:
value- the event handler ornull.
-
getOnStalled
public final Runnable getOnStalled()
Retrieves theMediaPlayer.Status.STALLEDevent handler.- Returns:
- the event handler or
null.
-
onStalledProperty
public ObjectProperty<Runnable> 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;valuemust be ≥ 2
-
getAudioSpectrumNumBands
public final int getAudioSpectrumNumBands()
Retrieves the number of bands in the audio spectrum.- Returns:
- the number of spectral bands.
-
audioSpectrumNumBandsProperty
public IntegerProperty 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 be2205Hz 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
public DoubleProperty audioSpectrumIntervalProperty()
The interval between spectrum updates in seconds. The default is0.1seconds.
-
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
public IntegerProperty 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
public final void setAudioSpectrumListener(AudioSpectrumListener listener)
Sets the listener of the audio spectrum.- Parameters:
listener- the spectral listener ornull.
-
getAudioSpectrumListener
public final AudioSpectrumListener getAudioSpectrumListener()
Retrieves the listener of the audio spectrum.- Returns:
- the spectral listener or
null
-
audioSpectrumListenerProperty
public ObjectProperty<AudioSpectrumListener> 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
AudioSpectrumListenermay 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.DISPOSEDafter this method is done. This method can be called anytime and regarding current player status.- Since:
- JavaFX 8.0
-
-