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
廣告