JavaFX - MediaPlayer setRate() 方法



在 JavaFX 中,setRate() 方法设置媒体播放器的播放速度。播放速度决定了媒体播放的速度快慢。

“速度”值介于 0.0 和 8.0 之间。如果媒体持续时间设置为 Duration.INDEFINITE,则调用此方法不会更改任何内容。

语法

以下是 MediaPlayer 类中 'setRate()' 方法的语法:

public final void setRate(double value)

参数

此方法接受一个参数。

  • value − 一个 'double' 值,表示播放速度,其中 1.0 的播放速度等于正常速度。较高的速度会加快播放速度,而较低的速度会降低播放速度。

返回值

此方法不返回值。

示例

以下是一个演示 MediaPlayer 类 setRate() 方法的基本示例:

在这个例子中,我们创建了一个应用程序,其中视频在 StackPane 上以 1.5 倍的播放速度播放。

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 SetRateExample extends Application {
   @Override
   public void start(Stage primaryStage) {
      File mediaPath = new File("./audio_video/sampleTP.mp4");
      Media media = new Media(mediaPath.toURI().toString());

      MediaPlayer mediaPlayer = new MediaPlayer(media);
      // Set the playback rate to 1.5x
      mediaPlayer.setRate(1.5);
      // Create a MediaView to visualize the media
      MediaView mediaView = new MediaView(mediaPlayer);

      mediaView.setFitHeight(250);
      mediaView.setFitWidth(400);

      // Create a StackPane and add the MediaView to it
      StackPane stackPane = new StackPane();
      stackPane.getChildren().add(mediaView);
      // Create a Scene with the StackPane as the root node
      Scene scene = new Scene(stackPane, 550, 300);

      primaryStage.setScene(scene);
      primaryStage.setTitle("Media Player with Custom Rate");
      primaryStage.show();

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

输出

以下输出显示媒体以 1.5 倍的播放速度播放。

mPlayersetRate
广告
© . All rights reserved.