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
广告

© . All rights reserved.