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" // } ] } }