DOC-13-05 使用媒体特性增强应用程序

本章将会回顾一个播放视频文件的媒体播放器应用程序,它拥有常见的视频播放器的控件,如开始/暂停按钮,播放进度条,音量控制条和一个控制重复播放的复选框。

本章的目的是熟悉javafx.scene.media包,以使开发者可以创建媒体应用。

关于媒体集成

所有JavaFX媒体应用都可以通过使用以下关键类来创建:

Media类:表示一个媒体源

MediaPlayer类:为指定源提供播放控制

MediaView类:为使用MediaPlayer对象播放的视频源提供一个视图

因为MediaView类是Node类的子类,MediaView对象可以添加进JavaFX场景中。这是提供将JavaFX媒体功能集成进桌面应用和web应用基础的主要因素。你已经知道了如何将JavaFX场景嵌入Swing应用中,你随后可以整合媒体播放器组件来增强你的应用。你可以为MediaView对象设置动画、应用过渡以及应用一些特效,就像其他节点一样。按这种方法,你可以支持许多有创意的任务。

创建媒体播放器应用程序

在JavaFX应用发布中整合媒体资源“文档提供了如何创建EmbeddedMediaPlayer应用程序的步骤说明。同时也提供了NetBeans工程源码。按照详细步骤创建应用或者使用侧边栏的链接下载工程源码。

本章中讨论的MediaPlayer应用程序基于EmbeddedMediaPlayer,但有如下细小改动:

● 作为一个最好的编程实践,应用程序使用了一个外部CSS文件。

● 控制栏包含一个Loop复选框来控制重复播放。

应用窗口如图5-1所示。

图5-1 媒体播放器应用程序窗口

13_5_1 media_player

你可以直接修改EmbeddedMediaPlayer工程或复制一份重命名并在新工程中修改。

使用CSS装饰应用程序

为了使用CSS来装饰应用程序,首先创建mediaplayer.css文件并保存在应用程序源代码的的文件夹中。添加如例5-1所示的样式规则。

例5-1

下一步,打开MediaControl.java文件,去掉MediaControl构造器中如例5-2所示的代码。

例5-2

修改MediaControl构造器,加入例5-3中加粗表示的代码。

例5-3

在控制栏添加一个新的控件

添加一个新的控件到控制栏中只需要几个步骤。在你定义MediaControl类实例的变量那一段,去掉repeat变量的定义,如例5-4所示。

例5-4

在MediaControl类中,去掉使用repeat变量的代码,如例5-5所示。

例5-5

现在,添加repeatBox变量,如例5-6所示。

例5-6

在你的媒体播放器的控制栏中添加一个标签和复选框。将如下代码放到MediaControl构造器中添加volumeSlider的代码行后面。如例5-7所示。

例5-7

在setOnEndOfMedia方法中实现使用复选框的逻辑,如例5-8所示。

例5-8

为了使媒体播放器可以在防火墙内访问一个远程媒体资源,提供了如下格式的代理设置:-Dhttp.proxyHost=yourproxyhost.com -Dhttp.proxyPort=portNumber。在这段设置中,yourproxyhost.com是你的代理地址,portNumber是使用的端口号。

应用程序文件

源代码

MediaPlayer.java

MediaControl.java

NetBeans工程

MediaPlayer.zip

打赏一下
支付宝
微信
除非注明,博客文章均为原创,转载请标明文章地址
本文地址: https://www.javafxchina.net/blog/2015/09/doc1305-media/
百度已收录