JavaFX - 处理媒体



一般来说,媒体指的是各种通信手段,例如音频、视频和其他形式,这些形式既可以是单向的,也可以是双向的。它以音乐、电影、新闻、视频博客等形式使用。

由于媒体的使用已成为我们生活中不可或缺的一部分,因此 JavaFX 创建者开发了一套 Java API,使 JavaFX 应用程序能够使用媒体。

在 JavaFX 中处理媒体

为了处理媒体,JavaFX 提供了 **javafx.scene.media** 包,该包允许开发人员在支持媒体播放的平台上将媒体播放器嵌入到桌面窗口或网页中。此包包含以下类,这些类组合使用以处理媒体内容 -

  • **Media** - 它包含指定媒体资源的源、分辨率和元数据等信息。

  • **MediaPlayer** - 它提供控制媒体播放的控件。

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

Media Classes

上面提到的类不是独立的,它们总是组合使用来创建一个嵌入式媒体播放器。控制媒体播放所需的所有属性和方法都可在 **MediaPlayer** 类中使用。更具体地说,**play()**、**stop()** 和 **pause()** 方法用于控制媒体播放。要调整音量级别,我们使用 VOLUME 变量。音量级别的范围为 0 到 1.0(最大值)。

请记住,没有 **MediaView** 类,我们就无法查看媒体播放器正在播放的媒体。

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

  • 缓冲数据

  • 每当发生 MediaErrorEvent 类的任何错误时。

  • 当媒体停止播放,因为媒体播放器接收到的数据不足以继续播放。

  • 当媒体播放器到达媒体末尾时。

JavaFX 中支持的媒体格式

JavaFX 支持以下媒体格式 -

序号 媒体和格式
1

音频

MP3、AIFF、WAV 和 MPEG-4

2

视频

包含 VP6 视频和 MP3 音频的 FLV 和 MPEG-4

JavaFX 媒体提供的功能

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

  • 它支持多种播放功能,例如播放、暂停、停止、音量和静音。

  • 它允许根据需要向前或向后导航音频/视频。

  • 它支持 HTTP 和文件协议。

  • 渐进式下载

  • 它还支持 HTTP 实时流。

处理媒体引用

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

Media

JavaFx 中的 Media 类就像音频视频文件的容器。它包含指定媒体资源的源、分辨率和元数据等信息。下面列出了一些 'Media' 类的使用方法 -

序号 方法和描述
1 getDuration()

检索媒体的持续时间(以秒为单位)。

2 getWidth()

检索媒体的宽度(以像素为单位)。

3 getHeight()

检索媒体的高度(以像素为单位)。

4 getSource()

检索媒体的源 URI。

5 getError()

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

MediaPlayer

MediaPlayer 类控制音频和视频文件,并允许执行播放、暂停和停止等功能,从而简化媒体控制。下面列出了一些 'MediaPlayer' 类的使用方法 -

序号 方法和描述
1 getStatus()

检索当前播放器状态。

2 getVolume()

检索音频播放音量。

3 setRate()

将播放速率设置为提供的数值。

4 isAutoPlay()

检索 autoPlay 属性的值。

5 getBlance()

检索音频平衡。

6 setMute()

设置 muteProperty() 的值。

7 getStartTime()

检索开始时间。

8 getStopTime()

检索停止时间。

9 getTotalDuration()

检索总播放时长,包括所有循环(重复)。

10 stop()

停止播放媒体。

MediaView

JavaFX 中的 MediaView 类是一个特殊的类,用于显示 MediaPlayer 播放的视频或媒体。下面列出了一些 'MediaView' 类的常用方法:

序号 方法和描述
1 getX()

获取 MediaView 原点的 x 坐标。

2 getY()

获取 MediaView 原点的 y 坐标。

3 setSmooth()

设置缩放媒体时是否进行平滑处理。

4 getViewPort()

获取媒体帧中的矩形视口。

5 isPreserveRatio()

设置缩放时是否保持媒体纵横比。

6 getFitHeight()

获取调整大小后的媒体的边界框的高度。

7 getFitWidth()

获取调整大小后的媒体的边界框的宽度。

广告