JavaFX - Media getHeight() Method



In JavaFX, the getHeight() method of the 'Media' class is used to fetch the height of the media in pixels. Here, the height denotes a property of the media defining the screen size of the video files, which can be measured in pixels.

This method gives the correct height value only when the media is fully loaded and ready to play. So, it's best to use this method after ensuring the media is initialized and ready.

Note: In JavaFX, we can't directly get the height of a media file using the Media class. But you can still do it by using a MediaPlayer object. When the media is ready to play, you can listen for that event and then get the height using getHeight().

Syntax

Following is the syntax of the 'getHeight()' method of 'Media' class −

public final int getHeight()

Parameters

This method does not takes any parameters.

Return value

This method returns the height of the media. Otherwise, zero if the height is undefined or unknown.

Example 1

Following is the basic example of the getHeight() method −

In this example, we are creating an application that loads a video file and using the getHeight() method, we are obtaining the screen height of the videos in pixels.

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);
   }
}

Output

Following is the output of the code displaying the height of the video in pixels.

Height of the media content: 720

Example 2

In this example, we create a StackPane to contain the MediaView, which is responsible for displaying the video. Then, we retrieve the height of the video by using the getHeight() method of the Media class within the onReady event handler for the MediaPlayer. This event handler ensures that the code waits until the media is fully prepared for playback before attempting to fetch its height properties.

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);
   }
}

Output

Following is the output −

Video Height: 720.0
Advertisements