JavaFX - MediaView setSmooth() 方法



在 JavaFX 中,'MediaView' 类中的 setSmooth() 方法用于指定是否应平滑渲染媒体内容。

如果 'smoothProperty' 设置为 'true',则 setSmooth() 方法在缩放或转换视频以适应提供的边界框时使用更高质量的滤波算法。如果设置为 'false',则它使用速度更快但质量较低的滤波算法。

注意 - 平滑的默认行为取决于平台配置。

语法

'MediaView' 类的 'setSmooth()' 方法的语法如下:

public final void setSmooth(boolean value)

参数

此方法接受一个参数:

  • value - 一个布尔值,指示是否应应用平滑。

返回值

此方法不返回值,它只是设置 'MediaView' 实例的平滑属性。

示例 1

以下是一个演示 'MediaView' 类的 setSmooth() 方法的基本示例:

在这个示例中,我们演示了将 MediaView 的平滑属性设置为 'true',这在缩放或转换视频时使用更高质量的滤波算法。

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 SetSmoothEx extends Application {
   @Override
   public void start(Stage primaryStage) {
      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 a MediaView associated with the MediaPlayer
      MediaView mediaView = new MediaView(mediaPlayer);

      // Set smooth to true
      mediaView.setSmooth(true);

      // Create a layout and add the MediaView
      StackPane root = new StackPane();
      root.getChildren().add(mediaView);

      // Set up the scene
      Scene scene = new Scene(root, 550, 270);
      primaryStage.setScene(scene);
      primaryStage.setTitle("MediaView setSmooth() Example");
      primaryStage.show();

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

输出

以下是代码的输出:

setSmooth1

示例 2

在这个示例中,我们演示了将 MediaView 的平滑属性设置为 'false'。这需要在缩放或转换视频时使用更快但质量较低的滤波算法。这可能会导致视觉质量下降,尤其是在调整视频大小或转换视频时。

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 SetSmoothEx extends Application {
   @Override
   public void start(Stage primaryStage) {
      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 a MediaView associated with the MediaPlayer
      MediaView mediaView = new MediaView(mediaPlayer);

      // Set smooth to true
      mediaView.setSmooth(false);

      // Create a layout and add the MediaView
      StackPane root = new StackPane();
      root.getChildren().add(mediaView);

      // Set up the scene
      Scene scene = new Scene(root, 550, 270);
      primaryStage.setScene(scene);
      primaryStage.setTitle("MediaView setSmooth() Example");
      primaryStage.show();

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

输出

以下是代码的输出:

setSmooth1
广告
© . All rights reserved.