JavaFX - MediaPlayer 的 getStatus() 方法



在 JavaFX 中,`MediaPlayer` 类的 `getStatus()` 用于检索媒体播放的当前状态。它提供有关媒体是否正在播放、暂停、停止或处于其他状态的信息。

以下是此方法可以显示的状态:

  • **UNKNOWN** - 表示媒体播放器的状态未知。

  • **READY** - 表示媒体播放器已准备好播放媒体,但目前未播放任何内容。

  • **PAUSED** - 表示媒体播放已暂停。

  • **PLAYING** - 表示媒体播放当前处于活动状态。

  • **STOPPED** - 表示媒体播放已停止。

语法

以下是 `MediaPlayer` 类的 `getStatus()` 方法的语法:

public final MediaPlayer.Status getStatus()

参数

此方法不接受任何参数。

返回值

此方法返回一个 `MediaPlayer.Status` 枚举值,表示媒体播放器的当前状态。

示例

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

在这个例子中,我们创建一个 `Media` 对象和一个对应的 `MediaPlayer`。我们在 `VBox` 中的标签中显示媒体状态。我们使用 `getStatus()` 方法连续更新状态标签。

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Label;
import javafx.scene.layout.VBox;
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 GetStatusExample 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);

      // creating a MediaView object from the MediaPlayer Object
      MediaView viewmedia = new MediaView(mediaPlayer);
      viewmedia.setFitHeight(250); 
      viewmedia.setFitWidth(420);

      // Create a label to display the media status
      Label statusLabel = new Label();

      // Create a VBox to hold the label
      VBox root = new VBox(20);
      root.getChildren().addAll(viewmedia, statusLabel); 

      Scene scene = new Scene(root, 550, 270);
      primaryStage.setScene(scene);
      primaryStage.setTitle("GetStatus Example");
      primaryStage.show();

      mediaPlayer.play();
      // Check the status of the media every second
      javafx.animation.Timeline timeline = new javafx.animation.Timeline(
         new javafx.animation.KeyFrame(
            javafx.util.Duration.seconds(1),
            event -> {
               // Get the status of the media
               MediaPlayer.Status status = mediaPlayer.getStatus();
               statusLabel.setText("Media Status: " + status);
            }
         )
      );
      timeline.setCycleCount(javafx.animation.Animation.INDEFINITE);
      timeline.play(); // Start the timeline
   }
   public static void main(String[] args) {
     launch(args);
   }
}

输出

以下是显示媒体状态的代码输出:

getstatus
广告
© . All rights reserved.