首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

Java Swing 播放 FLV 短影片方案選型

     編輯:程式設計綜合問答

需求約束

  • J2SE Swing 應用,播放 <10 秒 FLV 片段,數量少。
  • 不想依賴外部 DLL(如 JMF、Fobs4J),避免客戶端部署麻煩與安全軟體攔截。
  • 嘗試 JEditorPane 嵌入 HTML object 標籤失敗。

可行方案對比

方案優點缺點是否需原生庫
Xuggler (已停止維護)純 Java 解碼,支援 FLV專案已歸檔,效能一般否 (含原生碼打包在 jar)
JavaFX MediaPlayer (嵌入 Swing)官方支援,硬體加速,無額外依賴需 JDK 8+,啟動較重否 (模組化內建)
VLCJ (libvlc 封裝)格式支援最全,穩定必須安裝 VLC 播放器/部署 libvlc.dll是
FFmpeg + JNA 自行封裝完全可控開發成本極高是

推薦方案:JavaFX 嵌入 Swing

<dependency>
    <groupId>org.openjfx</groupId>
    <artifactId>javafx-media</artifactId>
    <version>17</version>
</dependency>

// Swing 中嵌入
JFXPanel fxPanel = new JFXPanel();
Platform.runLater(() -> {
    MediaPlayer player = new MediaPlayer(new Media(getClass().getResource("/video.flv").toString()));
    MediaView mediaView = new MediaView(player);
    Scene scene = new Scene(new StackPane(mediaView));
    fxPanel.setScene(scene);
    player.play();
});
frame.add(fxPanel, BorderLayout.CENTER);

注意事項

  • JavaFX 模組化後需配置 --module-path 或使用 javafx-maven-plugin 打包。
  • FLV 封裝格式需支援 H.264/VP6 視訊編碼,JavaFX 依賴平台媒體引擎,部分舊 FLV 可能無法播放,建議轉碼為 MP4 (H.264/AAC)。
  • 若專案必須保持純 Swing 且不可引入 JavaFX,考慮將 FLV 預轉為 GIF/APNG 或序列圖由 Swing 定時器播放(體積較大但零依賴)。

參考討論:CSDN 相關主題

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved