JavaFX - MediaView getViewport() 方法



在 JavaFX 中,'MediaView' 類中的 getViewport() 方法用於檢索媒體幀中的矩形視口。此視口定義在 'MediaView' 中可見的媒體部分。

當我們將 'ObjectProperty' 設定為儲存 Rectangle2D 物件時,我們可以檢索視口。此屬性可用於檢索和設定 MediaView 的視口。設定視口時,將提供一個 Rectangle2D 物件,指定要顯示的媒體的矩形區域。

語法

以下是 'MediaView' 類的 'getViewport()' 方法的語法:

public final Rectangle2D getViewport()

引數

此方法不接受任何引數。

返回值

此方法返回一個儲存 'Rectangle2D' 物件的 objectProperty,該物件表示可見的媒體的矩形區域。

示例 1

以下是一個演示 'MediaView' 類的 getViewport() 方法的基本示例:

在此示例中,我們演示了將 MediaView 的平滑屬性設定為 'true',這在縮放或轉換影片時使用更高質量的過濾演算法。

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

輸出

以下是程式碼的輸出:

getviewport

控制檯中可見 Rectangle2D 的詳細資訊。

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

示例 2

在此示例中,我們檢索 getViewport() 方法的值,而不設定 setViewport() 方法的 viewportProperty 的值。

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

輸出

以下是程式碼的輸出,顯示視口的屬性值為“null”。

current view port: null
廣告

© . All rights reserved.