JavaFX的媒体

本文概述

  • 媒体活动
  • javafx.scene.media.Media类
  • JavaFX.scene.media.MediaPlayer类
需要时, 现代世界的富Internet应用程序必须能够播放和编辑媒体文件。 JavaFX提供了丰富的媒体API, 可以根据用户需求播放音频和视频。
JavaFX Media API使用户可以将音频和视频合并到富互联网应用程序(RIA)中。 JavaFX媒体API可以在电视, 移动设备, 平板电脑等不同设备上分发媒体内容。
在本部分的教程中, 我们将讨论JavaFX以交互方式处理媒体文件的功能。为此, JavaFX提供了包含所有必需类的包javafx.scene.media。 javafx.scene.media包含以下类。
  1. javafx.scene.media.Media
  2. javafx.scene.media.MediaPlayer
  3. javafx.scene.media.MediaStatus
  4. javafx.scene.media.MediaView
媒体活动JavaFX团队已将媒体API设计为事件驱动的。媒体函数附带的回调行为用于处理媒体事件。代替通过EventHandler为按钮键入代码, 而是实现了一个代码, 该代码响应媒体播放器的OnXXXX事件的触发, 其中XXXX是事件名称。
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() 当媒体视图中发生错误时, 将调用此方法。
我们必须注意, MediaPlayer类包含最多触发的事件, 而MediaView和Media类各自包含一个事件。
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)

    推荐阅读