本文概述
- 媒体活动
- javafx.scene.media.Media类
- JavaFX.scene.media.MediaPlayer类
JavaFX Media API使用户可以将音频和视频合并到富互联网应用程序(RIA)中。 JavaFX媒体API可以在电视, 移动设备, 平板电脑等不同设备上分发媒体内容。
在本部分的教程中, 我们将讨论JavaFX以交互方式处理媒体文件的功能。为此, JavaFX提供了包含所有必需类的包javafx.scene.media。 javafx.scene.media包含以下类。
- javafx.scene.media.Media
- javafx.scene.media.MediaPlayer
- javafx.scene.media.MediaStatus
- javafx.scene.media.MediaView
java.lang.Runnable功能接口用作遇到事件时调用的回调。在javafx中播放媒体内容时, 我们将创建要在onReady事件上设置的Lambda表达式(java.lang.Runnable接口)。考虑以下示例。
Media media = new Media(url);
MediaPlayer mediaPlayer = new MediaPlayer(media);
Runnable playMusic = () ->
mediaPlayer.play();
mediaPlayer.setOnReady(playMusic);
playMusic变量被分配给lambda表达式。这被传递到媒体播放器的setOnReady()方法中。遇到onReady事件时, 将调用Lambda表达式。
下表讨论了可能的媒体和媒体播放器事件。
类 | 设置方法 | 描述 |
---|---|---|
Media | setOnError() | 发生错误时将调用此方法。它是媒体类的一部分。 |
MediaPlayer | setOnEndOfMedia() | 当媒体播放结束时, 将调用该方法。 |
MediaPlayer | setOnError() | 发生错误时将调用此方法。 |
MediaPlayer | setOnHalted() | 当媒体的状态更改为暂停时, 将调用此方法。 |
MediaPlayer | setOnMarker() | 触发Marker事件时, 将调用此方法。 |
MediaPlayer | setOnPaused() | 发生暂停事件时将调用此方法。 |
MediaPlayer | setOnPlaying() | 发生播放事件时将调用此方法。 |
MediaPlayer | setOnReady() | 当媒体处于就绪状态时, 将调用此方法。 |
MediaPlayer | setOnRepeat() | 设置repeat属性时, 将调用此方法。 |
MediaPlayer | setOnStalled() | 媒体播放器停顿时将调用此方法。 |
MediaPlayer | setOnStopped() | 媒体播放器停止后将调用此方法。 |
MediaView | setOnError() | 当媒体视图中发生错误时, 将调用此方法。 |
javafx.scene.media.Media类下表描述了该类的属性。除onError外, 所有属性均为只读。
属性 | 描述 |
---|---|
duration | 源媒体的持续时间(以秒为单位)。此属性属于Duration类的对象类型。 |
error | 发生错误时, 此属性设置为媒体异常值。此属性属于MediaException类的类型对象。 |
height | 源媒体的高度(以像素为单位)。这是一个整数类型的属性。 |
onError | 错误发生时调用的事件处理程序。 setOnError()方法用于设置此属性。 |
width | 源媒体的宽度(以像素为单位)。这是一个整数类型的属性 |
表中只有一个构造函数。
public Media(java.lang.String source):使用指定的源文件实例化Media类。
JavaFX.scene.media.MediaPlayer类下表描述了该类的属性以及setter方法。
属性 | 属性 | 设置方法 |
---|---|---|
audioSpectrumInterval | 这是一个双精度类型的属性。它指示频谱更新之间的间隔(以秒为单位)。 | setAudioSpectrumInterval (double value) |
audioSpectrumListener | 这是AudioSpectrumListener类的对象类型属性。它指示音频频谱的音频频谱监听器。 | setAudioSpectrumListener(AudioSpectrumListener listener) |
audioSpectrumNumBands | 这是一个整数类型的属性。它指示音频频谱之间的频带数。 | setAudioSpectrumNumBands(int value) |
audioSpectrumThreshold | 这是一个整数类型的属性。表示灵敏度阈值 | setAudioSpectrumThreshold(int value) |
autoPlay | 这是布尔类型属性。真值表示将尽快开始播放。 | setAutoPlay(Boolean value) |
balance | 这是一个双精度类型的属性。它指示音频输出的平衡。 | setBalance(double value) |
bufferProgressTime | 这是Duration类的对象类型属性。它指示在不停止媒体播放器的情况下可以播放的媒体持续时间。 | 无法设置为只读属性。 |
currentCount | 这是只读的整数类型属性。它指示完成的播放周期数。 | 无法设置为只读属性。 |
currentRate | 这是一个双精度类型的属性。它指示当前的播放速率。它是只读属性。 | 无法设置为只读属性。 |
currentTime | 这是Duration类的对象类型属性。它指示当前的媒体播放时间。 | 无法设置为只读属性。 |
cycleCount | 它是整数类型属性。它指示播放媒体的次数。 | setCycleCount(int value) |
cycleDuration | 它是唯一可用的属性。它是Duration类的类型对象。它指示介质的开始时间和停止时间之间的时间量。 | 无法设置为只读属性。 |
error | 这是一个只读属性。它是MediaException类的对象类型属性。如果发生错误, 则将其设置为Media-Exception。 | 无法设置为只读属性。 |
mute | 这是布尔类型的属性。它指示音频是否静音。 | SetMute(boolean value) |
onEndOfMedia | 它是接口Runnable的对象类型属性。它设置为事件处理程序, 到达媒体文件末尾时将调用该事件处理程序。 | setOnEndOfMedia(java.lang.Runnable value) |
onError | 它是接口Runnable的对象类型属性。它指示在状态更改为暂停时将调用的事件处理程序。 | setOnHalted(java.lang.Runnable value) |
onMarker | 它是MediaMarkerEvent类的对象类型属性。它指示在当前时间到达媒体标记时将调用的EventHandler。 | setOnMarker(EventHandler < MediaMarkerEvent> onMarker) |
onPaused | 它是接口Runnable的对象类型属性。它指示将状态更改为暂停时将调用的EventHandler。 | setOnPaused(java.lang.Runnable value) |
onPlaying | 它是接口Runnable的对象类型属性。它指示将状态更改为正在播放时将调用的EventHandler。 | setOnPlaying(java.lang.Runnable value) |
onReady | 它是接口Runnable的对象类型属性。它指示将状态更改为“就绪”时将调用的EventHandler。 | setOnReady(java.lang.Runnable value) |
onRepeat | 它是MediaMarkerEvent类的对象类型属性。它指示EventHandler, 它将在当前时间到达停止时间并将被重复时调用。 | setOnRepeat(java.lang.Runnable value) |
onStalled | 它是接口Runnable的对象类型属性。它指示事件处理程序, 当状态更改为“已停止”时将被调用。 | setOnStalled(java.lang.Runnable value) |
onStopped | 它是接口Runnable的对象类型属性。它指示将状态更改为“已停止”时将调用的EventHandler。 | setOnStopped(java.lang.Runnable value) |
rate | 这是double类型的属性。它指示媒体播放的速率。 | setRate(double value) |
startTime | 此属性属于Duration类的类型对象。它指示媒体应开始播放的时间。 | setStartTime(Duration value) |
status | 这是只读属性。它指示媒体播放器的当前状态。 | 无法设置为只读属性。 |
stopTime | 此属性是Duration类的对象类型。它指示媒体应停止播放的时间偏移。 | setStopTime(double value) |
totalDuration | 它是Duration类的对象类型属性。它指示应该播放媒体的总时间。 | 无法设置为只读属性。 |
volume | 这是一个双精度类型的属性。它指示媒体应播放的音量。 | setVolume(double value) |
【JavaFX的媒体】该类仅包含一个构造函数, 如下所示。
public MediaPlayer (Media media)
推荐阅读
- JavaFX教程介绍
- JavaFX平移
- JavaFX UI控件
- JavaFX平移过渡
- JavaFX转换
- JavaFX TextField
- JavaFX工具提示
- JavaFX StrokeTransition
- 其他|甲骨文谷歌继续打官司(美最高法院同意复审 Java API 版权诉讼案)