JavaFX - 播放影片



影片是一種視覺交流媒介。在我們的日常生活中,我們可以觀察到它在娛樂業、新聞機構、教育平臺等眾多領域的應用。例如,我們可以在下圖中看到 YouTube 影片播放器 -

Sample Video

在 JavaFX 中播放影片

要在 JavaFX 中播放影片,我們需要將其嵌入到應用程式中。有不同的影片格式可用,其中 JavaFX 只支援兩種,即MPEG-4(簡稱 mp4)和FLV。請按照以下步驟將影片嵌入到 JavaFX 應用程式中:

  • 首先,透過傳遞影片檔案的路徑來例項化名為javafx.scene.media包中的Media類。

  • 接下來,透過將 Media 物件作為引數值傳遞給它的建構函式來建立一個MediaPlayer物件。這將使媒體能夠在 JavaFX 應用程式中播放。

  • 然後,透過將 MediaPlayer 物件作為引數值傳遞給它的建構函式來例項化MediaView類。這樣做將允許 JavaFX 應用程式顯示影片。

  • 最後,建立任何佈局面板,並設定場景和舞臺所需的尺寸。

示例

下面的 JavaFX 程式演示瞭如何將影片嵌入到 JavaFX 應用程式中。將此程式碼儲存在名為Javafx_Video.java的檔案中。

import java.io.File;
import javafx.application.Application;
import javafx.geometry.Pos;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.layout.HBox;
import javafx.scene.layout.VBox;
import javafx.scene.media.Media;
import javafx.scene.media.MediaPlayer;
import javafx.scene.media.MediaView;
import javafx.stage.Stage;
public class Javafx_Video extends Application {
   @Override
   public void start(Stage stage) {
      // Passing the video file to the File object
      File videofile = new File("sampleTP.mp4");
      // creating a Media object from the File Object
      Media videomedia = new Media(videofile.toURI().toString()); 
      // creating a MediaPlayer object from the Media Object
      MediaPlayer mdplayer = new MediaPlayer(videomedia);
      // creating a MediaView object from the MediaPlayer Object
      MediaView viewmedia = new MediaView(mdplayer);
      //setting the fit height and width of the media view 
      viewmedia.setFitHeight(455); 
      viewmedia.setFitWidth(500); 
      // creating video controls using the buttons
      Button pause = new Button("Pause");
      Button resume = new Button("Resume");
      // creating an HBox 
      HBox box = new HBox(20, pause, resume);
      box.setAlignment(Pos.CENTER);
      // function to handle play and pause buttons
      pause.setOnAction(act -> mdplayer.pause());
      resume.setOnAction(act -> mdplayer.play());
      // creating the root
      VBox root = new VBox(20);
      root.setAlignment(Pos.CENTER);
      root.getChildren().addAll(viewmedia, box);
      Scene scene = new Scene(root, 400, 400);
      stage.setScene(scene);
      stage.setTitle("Example of Video in JavaFX");
      stage.show();   
   }
   public static void main(String[] args) {
      launch(args);
   }
}

要從命令提示符編譯和執行儲存的 Java 檔案,請使用以下命令:

javac --module-path %PATH_TO_FX% --add-modules javafx.controls,javafx.media Javafx_Video.java
java --module-path %PATH_TO_FX% --add-modules javafx.controls,javafx.media Javafx_Video

輸出

當我們執行上述程式碼時,它將生成以下輸出。

Video Output
廣告