Javafx 简明教程

JavaFX - Handling Media

通常来说,媒体是指各种通信方式,如音频、视频以及可以是单向或双向的其他形式。它以音乐、电影、新闻、视频播客等形式出现。

由于媒体使用已经成为我们生活中必不可少的一部分,JavaFX 创建者开发了一组 Java API,这可以实现 JavaFX 应用程序中对媒体的使用。

Handling Media in JavaFX

为了处理媒体内容,JavaFX 提供了 javafx.scene.media 包,使开发者能够在支持媒体播放的平台上将媒体播放器嵌入到桌面窗口或网页中。此包包含用于组合使用以处理媒体内容的下列类:

  1. Media - 包含类似指定媒体资源的来源、分辨率和元数据等信息片段。

  2. MediaPlayer - 提供媒体播放控制功能。

  3. MediaView - 作为一个节点对象,用于为媒体资源提供动画和其他效果的支持。

media classes

上述类并非独立存在的,它们总被组合使用来创建一个内嵌媒体播放器。控制媒体播放所需的所有属性和方法均在 MediaPlayer 类中提供。更具体地说, play()stop()pause() 方法用于控制媒体播放。要调节音量级别,我们使用 VOLUME 变量。音量级别的范围从 0 到 1.0(最大值)。

请记住,如果没有 MediaView 类,我们无法看到媒体播放器播放的媒体。

还有一些用于处理以下事件的其他附加方法:

  1. Buffers data

  2. 每当发生任何 MediaErrorEvent 类错误时。

  3. 当由于媒体播放器没有足够快地接收到继续播放的数据而导致媒体停止时。

  4. 当媒体播放器到达媒体结尾时。

Supported format of Media in JavaFX

JavaFX 在支持 JavaFX 的设备上支持以下媒体格式:

S.No

Media & Format

1

Audio MP3、AIFF、WAV 和 MPEG-4

2

Video FLV(包含 VP6 视频和 MP3 音频)和 MPEG-4

Features provided by JavaFX media

JavaFX 媒体在支持 JavaFX 的设备上提供了以下功能:

  1. 支持多个播放功能,如播放、暂停、停止、音量和静音。

  2. 根据需要允许向前或向后浏览音频/视频。

  3. 为 HTTP 和文件协议提供支持。

  4. Progressive download

  5. 还支持 HTTP 实时流。

Handling Media Reference

以下是用于在 JavaFX 中处理媒体的类和方法。

Media

JavaFx 中的 Media 类就像音频视频文件的容器。它包含指定媒体资源的一些信息,例如来源、分辨率和元数据。下面列出了一些 Media 类的函数:

Sr.No.

Methods & Description

1

getDuration() 获取媒体的持续时间(秒)。

2

getWidth() 获取媒体的宽度(像素)。

3

getHeight() 获取媒体的高度(像素)。

4

getSource() 获取媒体的来源 URI。

5

getError() 返回媒体中遇到的任何错误。

MediaPlayer

MediaPlayer 类控制音频和视频文件,并允许诸如播放、暂停和停止等功能,使媒体控制变得容易。下面列出了一些 MediaPlayer 类的函数:

Sr.No.

Methods & Description

1

getStatus() 获取当前播放器状态。

2

getVolume() 获取音频播放音量。

3

setRate() 将播放速率设置为提供的值。

4

isAutoPlay() 获取 autoPlay 属性值。

5

getBlance()Retrieves the audio balance.

6

setMute() 设置 muteProperty() 的值。

7

getStartTime()Retrieves the start time.

8

getStopTime()Retrieves the stop time.

9

getTotalDuration() 获取包括所有周期(重复)的总播放时间。

10

stop()Stops playing the media.

MediaView

JavaFX 中的 MediaView 类是一个用于显示由 MediaPlayer 播放的视频或媒体的特殊类。下面列出了一些 MediaView 类的函数:

Sr.No.

Methods & Description

1

getX() 获取 MediaView 起点的 x 坐标。

2

getY() 获取 MediaView 起点的 y 坐标。

3

setSmooth() 设置缩放时是否平滑媒体。

4

getViewPort() 获取媒体帧中的矩形视区。

5

isPreserveRatio() 设置缩放时是否保留媒体宽高比。

6

getFitHeight() 检索调整大小的媒体边框盒的高度。

7

getFitWidth() 检索调整大小的媒体边框盒的宽度。