JavaFX - Media 的 getHeight() 方法



在 JavaFX 中,'Media' 類的 getHeight() 方法用於獲取媒體的高度(以畫素為單位)。這裡,高度表示媒體的一個屬性,定義了影片檔案的螢幕尺寸,可以用畫素來衡量。

只有當媒體完全載入並準備好播放時,此方法才能給出正確的高度值。因此,最好在確保媒體已初始化並準備就緒後使用此方法。

注意:在 JavaFX 中,我們不能直接使用 Media 類獲取媒體檔案的高度。但是,您仍然可以透過使用 MediaPlayer 物件來實現。當媒體準備好播放時,您可以監聽該事件,然後使用 getHeight() 獲取高度。

語法

以下是 'Media' 類中 'getHeight()' 方法的語法:

public final int getHeight()

引數

此方法不接受任何引數。

返回值

此方法返回媒體的高度。否則,如果高度未定義或未知,則返回零。

示例 1

以下是 getHeight() 方法的基本示例:

在此示例中,我們正在建立一個應用程式,該應用程式載入影片檔案並使用 getHeight() 方法獲取影片的螢幕高度(以畫素為單位)。

import javafx.application.Application;
import javafx.scene.media.Media;
import javafx.scene.media.MediaPlayer;
import javafx.stage.Stage;
public class MediaGetHeight1 extends Application {
   @Override
   public void start(Stage primaryStage) {
      String mediaFile = "./audio_video/sampleTP.mp4";

      // Create a Media object with the media file
      Media media = new Media(getClass().getResource(mediaFile).toString());

      // Create a MediaPlayer with the Media object
      MediaPlayer mediaPlayer = new MediaPlayer(media);

      // Set a listener for when the MediaPlayer is ready
      mediaPlayer.setOnReady(() -> {
         // Print the height of the media content
         System.out.println("Height of the media content: " + media.getHeight());
         primaryStage.close();
      });
      mediaPlayer.play();
   }
   public static void main(String[] args) {
      launch(args);
   }
}

輸出

以下是程式碼輸出,顯示影片的高度(以畫素為單位)。

Height of the media content: 720

示例 2

在此示例中,我們建立一個 StackPane 來包含 MediaView,MediaView 負責顯示影片。然後,我們透過在 MediaPlayer 的 onReady 事件處理程式中使用 Media 類的 getHeight() 方法來檢索影片的高度。此事件處理程式確保程式碼在嘗試獲取其高度屬性之前等待媒體完全準備好播放。

import javafx.application.Application;
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.stage.Stage;
import java.io.File;

public class VideoHeightEx extends Application {
   @Override
   public void start(Stage primaryStage) {
      // Creating a StackPane to hold the MediaView
      StackPane root = new StackPane();
      // Creating a Media object with the path to the video file
      String videoFile = "./audio_video/sampleTP.mp4";
      Media media = new Media(new File(videoFile).toURI().toString());

      // Creating a MediaPlayer with the Media object
      MediaPlayer mediaPlayer = new MediaPlayer(media);

      // Creating a MediaView to display the video
      MediaView mediaView = new MediaView(mediaPlayer);

      root.getChildren().add(mediaView);
      Scene scene = new Scene(root, 550, 275);
      primaryStage.setScene(scene);
      primaryStage.setTitle("Video Height Example");
      primaryStage.show();

      // Fetching the height of the video after it is displayed
      mediaPlayer.setOnReady(() -> {
         double videoHeight = mediaView.getBoundsInLocal().getHeight();
         System.out.println("Video Height: " + videoHeight);
      });
   }
   public static void main(String[] args) {
      launch(args);
   }
}

輸出

以下是輸出:

Video Height: 720.0
廣告