JavaFx做媒体播放器程序,在JavaFx类库中有 javafx.scene.media 类,即用以开发媒体播放应用,在scene.media中有AudioTrack、Media、Media.Metadata、MediaPlayer、MediaTimer、MediaView、SubtitleTrack、Track、TrackType和VideTrack子成员类,在视频与音频播放应用和flash的actionscript有相似的地方,比如play()、pause()、 stop()方法,这些方法在Silverlight中的mediaElement组件的play()、pause()、 stop()也有类同之处。在本文的JavaFX文章示例中将展示一个JavaFX script 音频音乐播放程序,主要通过“import javafx.scene.media.Media;” 和“import javafx.scene.media.MediaPlayer;”来进行音频文件控制,以及“import javafx.scene.image.ImageView;”和“import javafx.scene.image.Image;”进行图片控制与调用,另外则是“import javafx.scene.input.MouseEvent;”事件触发用,最后“import javafx.scene.effect.Reflection;”则是特效使用。Oracle官方javafx.scene.media类库参考地址http://download.oracle.com
(双击视频进入或退出全屏模式)
上面视频展示的是生成窗体程序与Web页面的使用,程序启动编译生成将在项目路径的 “dist”文件下包括JavaFXs2011.html、JavaFXs2011.jar和JavaFXs2011.jnlp主文件,下面是程序代码
package javafxs2011;
import javafx.scene.Scene;
import javafx.scene.Group;
import javafx.scene.effect.Reflection;
import javafx.scene.image.ImageView;
import javafx.scene.input.MouseEvent;
import javafx.scene.layout.HBox;
import javafx.scene.media.Media;
import javafx.scene.media.MediaPlayer;
import javafx.scene.image.Image;
import javafx.scene.text.Text;
import javafx.scene.text.Font;
import javafx.scene.paint.Color;
import javafx.stage.Stage;
![]()
/**
* Copyright (C) weisim3.com 02.03.2011
* Weisim3.com Media Audio Player - JavaFX
*/
def w = 400;
def h = 300;
var Img: Image = Image { url: "{__DIR__}Play150-1.png" };
def mediaSource = "http://zhangmenshiting.baidu.com/data/mu98c1f0df502c3.mp3";
def player = MediaPlayer { media: Media { source: mediaSource } }
def controls = Group {
layoutX: w / 2
layoutY: h / 3
effect: Reflection {
fraction: 0.4 bottomOpacity: 0.1 topOffset: 3
}
![]()
content: [
![]()
Text {
id: "Mytext"
font: Font {
size: 16
}
x: -165
y: -60
content: "weisim3.com Media"
fill: Color.RED
}
![]()
HBox {
spacing: 10 content: [
ImageView {
image: bind Img
onMouseClicked: function(e: MouseEvent): Void {
if (not (player.status == player.PLAYING)) {
Img = Image { url: "{__DIR__}pause150-1.png" }
player.play();
} else if (player.status == player.PLAYING) {
Img = Image { url: "{__DIR__}Play150-1.png" }
player.pause();
![]()
}
}
}
![]()
ImageView {
image: Image { url: "{__DIR__}stop150-1.png" }
onMouseClicked: function(e) {
if (player.status == player.PLAYING) {
Img = Image { url: "{__DIR__}Play150-1.png" }
player.stop();
![]()
}
}
}
] }
]
}
![]()
Stage {
title: "Weisim3.com Audio"
scene: Scene {
width: w + 35
height: h - 30 fill: Color.BLACK
content: [controls
// Text {
// font: Font {
// size: 16
// }
// x: 10
// y: 30
// content: "Application content"
// }
![]()
]
}
}