JavaFX - Media getDuration() 方法



在 JavaFX 中,getDuration() 方法是一個 getter 方法,用於檢索與“Media”物件關聯的媒體內容的持續時間,無需任何其他資訊。

術語“Duration”表示媒體的時長或總播放時間,以秒為單位表示。

注意 - 返回的“Duration”物件可能包含秒的分數,為媒體應用程式中的精確播放控制和同步提供精確的計時。

語法

以下是“Media”類的“getDuration()”方法的語法:

public Duration getDuration()

引數

此方法不接受任何引數。

返回值

此方法返回“Duration”物件,表示媒體內容的長度。

示例

以下是getDuration()方法的基本示例:

在此示例中,我們使用音訊檔案並使用 getDuration() 方法檢索音訊檔案的總時長。

import javafx.application.Application;
import javafx.scene.media.Media;
import javafx.scene.media.MediaPlayer;
import javafx.stage.Stage;
import javafx.util.Duration;
import java.io.File;
public class MediaGetDuration1 extends Application {
   @Override
   public void start(Stage primaryStage) {
      // Create a Media object representing the audio file
      String audioFile = "./audio_video/Hero1.mp3";
      Media media = new Media(new File(audioFile).toURI().toString());

      // Creating a MediaPlayer object from the Media Object
      MediaPlayer mediaPlayer = new MediaPlayer(media);

      mediaPlayer.setOnReady(() -> {
         // Get the duration of the media
         Duration duration = media.getDuration();
         double durationInSeconds = duration.toSeconds();
         // Print the duration
         System.out.println("Duration of the media file: " + durationInSeconds + " seconds");

         // Exiting the application
         primaryStage.close();
      });
      // Start the media player
      mediaPlayer.play();
   }
   public static void main(String[] args) {
      launch(args);
   }
}

輸出

以下是顯示音訊檔案總時長的程式碼輸出。

Duration of the media file: 149.81225 seconds

示例

在以下示例中,我們應用 getDuration() 方法來檢索嵌入式影片檔案的持續時間。

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 javafx.util.Duration;

public class MediaGetDuration2 extends Application {
   @Override
   public void start(Stage primaryStage) {
      String videoFile = "./audio_video/sampleTP.mp4";        
      // Create a Media object with the video file
      Media media = new Media(getClass().getResource(videoFile).toString());        

      // Initialize a MediaPlayer with the Media object
      MediaPlayer mediaPlayer = new MediaPlayer(media);       

      // Create a MediaView and associate it with the MediaPlayer
      MediaView mediaView = new MediaView(mediaPlayer);

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

      Scene scene = new Scene(root, 550, 275);
      // Set the Scene to the Stage
      primaryStage.setScene(scene);
      primaryStage.setTitle("Running Media Duration Example");
      primaryStage.show();        

      // Play the media
      mediaPlayer.play();

      // Set a listener for when the MediaPlayer finishes playing
      mediaPlayer.setOnEndOfMedia(() -> {
         Duration duration = media.getDuration();
         // Convert duration from milliseconds to hours, minutes, and seconds
         long totalSeconds = (long) duration.toSeconds();
         long hours = totalSeconds / 3600;
         long minutes = (totalSeconds % 3600) / 60;
         long seconds = totalSeconds % 60;

         System.out.println("Duration of the video: " + hours + " hours, " + minutes + " minutes, " + seconds + " seconds");

         primaryStage.close();
     });
   }    
   public static void main(String[] args) {
      launch(args);
   }
}

輸出

以下是顯示影片播放完成後以小時、分鐘和秒為單位的總時長的輸出。

Duration of the video: 0 hours, 2 minutes, 18 seconds
廣告

© . All rights reserved.