預覽:
import javafx.application.Application;
import javafx.beans.binding.Bindings;
import javafx.scene.Scene;
import javafx.scene.layout.StackPane;
import javafx.scene.media.Media;
import javafx.scene.media.MediaPlayer;
import javafx.scene.media.MediaView;
import javafx.scene.paint.Color;
import javafx.stage.Stage;
public class MyPlayer extends Application {
public static void main(String[] args) {
launch(args);
}
@Override
public void start(final Stage stage) throws Exception {
stage.setTitle("My Player");
// 使用 StackPane 可使影片在中間播放,使用 Group 則會靠左上對齊
StackPane root = new StackPane();
Media media = new Media("file:///C:/Test/A.mp4"); // 影片路徑
MediaPlayer player = new MediaPlayer(media);
MediaView view = new MediaView(player);
// view.fitWidthProperty().set(1920); // 手動設定解析度 (寬度)
// view.fitHeightProperty().set(1080); // 手動設定解析度 (高度)
// 自動設定解析度
view.fitWidthProperty().bind(Bindings.selectDouble(view.sceneProperty(), "width"));
view.fitHeightProperty().bind(Bindings.selectDouble(view.sceneProperty(), "height"));
view.setPreserveRatio(true); // 視窗縮放的時候,必須維持比例
root.getChildren().add(view);
Scene scene = new Scene(root, 600, 400, Color.BLACK); // 設定寬高,背景顏色為黑色
stage.setScene(scene);
stage.setFullScreen(true); // 設定全螢幕
stage.show();
// player.setMute(true); // 靜音
// player.setRate(10); // 播放速度快10倍
player.setCycleCount(MediaPlayer.INDEFINITE); // 循環播放
player.play(); // 開始播放
}
}
作業系統 FX 支援可以參考這裡
http://www.oracle.com/technetwork/java/javase/certconfig-2095354.html
如果是 Ubuntu 12 可以先安裝以下套件 才可以播放:
sudo apt-get install libavutil51
sudo apt-get install libavcodec53
sudo apt-get install libavformat53