DOC-09-03 控制媒体播放

在这一节中将创建一个有图形ui元素的全功能媒体播放器来控制播放。

为了创建一个媒体播放器,你需要实现三重嵌套的媒体对象的结构,编码图形控件,以及加入一些播放功能的逻辑。如下面图3-1展示:

图3-1 有播放控制的媒体播放器的结构

9_3_1 control-structure

你将在第2章当中创建的媒体播放器当中继续加入控制功能。在进行这章的内容之前,必须要完成媒体播放器应用的部分。加入的媒体控制边栏由播放按钮,进度条和音量控制三部分组成。

创建控制

在这一节中你将创建一个新的JavaFX源文件MediaControl.java,其中包括用于播放/暂停,进度条,音量调节的边栏以及UI控制。

1. 在NetBeans IDE中打开EmbeddedMediaPlayer主工程,在其中创建新的JavaFX文件

a. 使用快捷键Ctrl+N或者在IDE主菜单中选择File>New File

b. 选择JavaFX类别中的JavaFX Main类,点击Next

c. 在Name and Location对话框中的Class Name栏输入MediaControl。

d. 在package域的下拉菜单中选择embeddedmediaplayer,然后点击Finish

2. 删除java文件中package embeddedmediaplayer之后的所有内容

3. 将例3-1引入声明部分加入到文件的开头

例3-1 加入的引入声明

4. 复制粘贴例3-2以创建包括控制功能的BorderPane

例3-2 加入MediaControl类的代码

5. 复制例3-3的内容粘贴到setCenter(mvPane)行的后面,这些代码的作用是加入媒体工具栏和播放按钮

例3-3 加入媒体工具栏和播放按钮

6. 将例3-4的引入声明部分加入到文件的最前面

例3-4 加入更多的引入声明

7. 加入UI控制的reminder到控制边栏。将例3-5的代码加入到getChildren().add(playButton);行的后面,setBottom(mediaBar)行的前面。

例3-5 加入剩下的UI控制

8. 加入例3-6的引入声明加入到文件的最前面

例3-6 加入更多的引入声明

加入功能逻辑部分的代码

所有的控制功能创建完毕并加入控制面板之后,加入功能代码来管理媒体播放并创建你的应用交互。

1. 加入播放按钮事件处理器和监听器。复制例3-7的代码粘贴到final Button playButton = new Button(“>”)行之后,getChildren().add(playButton)行之前

例3-7 加入播放按钮事件的处理器和监听器

2. 在例3-7中加入的代码使用的引入声明已经在之前加入以避免有错误提示。但在这次中,为了消除所有标记的错误,使用快捷键Ctrl+Shift+I,或者点击右键,选择Fix Imports。从Fix All Imports的对话框的下拉菜单中,选择scene.media.MediaPlayer.Status,javafx.event.ActionEvent和javafx.event.EventHandler

3. 在加入例3-7代码的后面加入下面的代码,在getChildren().add(playButton).行之前,这些代码的作用是处理监听器。

例3-8 加入监听器代码

注意可能出现一些错误提示,在后面几步加入更多的代码后可以修复这些错误。

4. 在setMaxWidth(Double.MAX_VALUE)行之后,mediaBar.getChildren().add(timeSlider)之前加入以下代码,作用是加入时间滑块的监听器。

例3-9 加入时间滑块的监听器

5. 在setMinWidth(30)之后,mediabar.getChildren().add(volumeSlider)之前加入以下代码,作用是加入音量滑块控制的监听器

例3-10 加入音量控制的监听器

6. 创建用于播放控制的updateValues方法,将其加入到public MediaControl()方法的后面。

例3-11 加入updateValues方法

7. 在updateValues()方法的后面加入private method formatTime(),formatTime()方法是用于计算媒体播放器已播放的时间,并且格式化它来显示在控制面板上

例3-12 加入计算已用时间的方法

8. 最后,修复引入。右键点击空白区域,从Fix All Imports对话框中选择application.Platform和javafx.beans.Observable,点击OK。

修改EmbeddedMediaPlayer.java

为了添加控制功能,修改你在上一章建立的文件embeddedmediaplayer.java并添加代码来加入Media Control 这个对象。

1. 复制在例3-13中的代码并将其粘贴在setAutoPlay(True)之后。

例3-13 添加代码来创建Media Control 对象。

2. 删除在例3-14中之前创建mediaView和mediaPlay 对象的三行代码。

例3-14 删除代码行

3. 删除mediaView的引入声明:import javafx.scene.media.MediaView;

4. 调整这个场景的高度来容纳新添加的媒体控制。

例3-15 调整场景高度

编译和运行EmbeddedMedia

现在build你在上一部分创建的应用并运行它。

1. 右键EmbeddedMediaPlayer 对象节点并选择Clean和build。

2. 如果没有build 错误,再一次右键节点选择Run。带有控制功能的媒体播放器便出现了,如图3-2,并开始播放。

图3-2 带有播放控制的媒体播放器

9_3_2 media-with-controls

3. 用play/pause键来暂停和重播。用进度条来快进和后退。用声音控制按钮来调节声音。

EmbeddedMediaPlayer.zip 文件中可以找到完整的应用代码。

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