JavaFX - MediaView getViewport() Method



In JavaFX, the getViewport() method in the 'MediaView' class is used to retrieve the rectangular viewport into the media frame. This viewport define the portion of the media that is visible in the 'MediaView'.

When we set the 'ObjectProperty' to hold a Rectangle2D object, we can retrieve the viewport. This property can be used to both retrieve and set the viewport of the MediaView. When setting the viewport, a Rectangle2D object is provided, specifying the rectangular area of the media to display.

Syntax

Following is the syntax of the 'getViewport()' method of 'MediaView' class −

public final Rectangle2D getViewport()

Parameters

This method doesn't take any parameters.

Return value

This method returns a objectProperty that holds a 'Rectangle2D' object represents the rectangular area of the media that is visible.

Example 1

Following is a basic example demonstrating the getViewport() method of 'MediaView' class −

In this example, we demonstrate setting the smooth property of a MediaView to 'true', which uses a higher-quality filtering algorithm when scaling or transforming the video.

import javafx.application.Application;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.media.Media;
import javafx.scene.media.MediaPlayer;
import javafx.scene.media.MediaView;
import javafx.stage.Stage;
import javafx.geometry.Rectangle2D;
import java.io.File;
public class GetViewport extends Application {
   @Override
   public void start(Stage stage) {
      File mediaPath = new File("./audio_video/sampleTP.mp4");
      Media media = new Media(mediaPath.toURI().toString());

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

      // Create the MediaView
      MediaView mediaView = new MediaView(mediaPlayer);

      // Set the viewport to show a specific rectangular area of the media
      Rectangle2D viewportRect = new Rectangle2D(150, 150, 300, 250);
      mediaView.setViewport(viewportRect);

      // get the viewport 
      Rectangle2D currentViewport = mediaView.getViewport();
      System.out.println("current view port: " + currentViewport);

      Group root = new Group(mediaView);
      Scene scene = new Scene(root, 550, 270);
      stage.setScene(scene);
      stage.setTitle("MediaView Viewport Example");
      stage.show();

      mediaPlayer.play();
   }
   public static void main(String[] args) {
      launch(args);
   }
}

Output

Following is the output of the code −

getviewport

Details of Rectangle2D are visible in the console.

current view port: Rectangle2D [minX=150.0, minY=150.0, maxX=450.0, maxY=400.0, width=300.0, height=250.0]

Example 2

In this example, we retrieve the value of the getViewport() method without setting the viewportProperty's value of setViewport() method.

import javafx.application.Application;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.media.Media;
import javafx.scene.media.MediaPlayer;
import javafx.scene.media.MediaView;
import javafx.stage.Stage;
import javafx.geometry.Rectangle2D;
import java.io.File;
public class GetViewport extends Application {
   @Override
   public void start(Stage stage) {
      File mediaPath = new File("./audio_video/sampleTP.mp4");
      Media media = new Media(mediaPath.toURI().toString());

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

      // Create the MediaView
      MediaView mediaView = new MediaView(mediaPlayer);

      // get the viewport 
      Rectangle2D currentViewport = mediaView.getViewport();
      System.out.println("current view port: " + currentViewport);

      Group root = new Group(mediaView);
      Scene scene = new Scene(root, 550, 270);
      stage.setScene(scene);
      stage.setTitle("MediaView Viewport Example");
      stage.show();

      mediaPlayer.play();
   }
   public static void main(String[] args) {
      launch(args);
   }
}

Output

Following is the output of the code displays the property value of viewport is "null".

current view port: null
Advertisements