JavaFX - MediaPlayer getStartTime() 方法



在 JavaFX 中,MediaPlayer 類中的 getStartTime() 方法用於控制媒體播放並檢索媒體的起始時間,即媒體開始播放的時間偏移量。預設情況下,它設定為“Duration.ZERO”,表示媒體的開頭。

當我們使用 setStartTime() 方法設定起始時間時,getStartTime() 方法將返回該起始時間。否則,預設情況下,此方法返回 0.0ms。

語法

以下是 MediaPlayer 類的 getStartTime() 方法的語法:

public final Duration getStartTime()

引數

此方法不接受任何引數。

返回值

此方法返回一個 Duration 例項,表示起始時間。

示例 1

以下是一個演示 MediaPlayer 類 getStartTime() 方法的基本示例:

在此示例中,setStartTime() 方法用於將媒體播放的起始時間設定為從開頭開始的 30 秒。然後,我們呼叫 getStartTime() 方法來檢索起始時間,並將其列印到控制檯。

import javafx.application.Platform;
import javafx.scene.media.Media;
import javafx.scene.media.MediaPlayer;
import javafx.util.Duration;
import java.io.File;
public class GetStartTimeEx{
   public static void main(String[] args) {
      Platform.startup(() -> {
         File mediaPath = new File("./audio_video/Hero2.mp3");
         // Create a Media object
         Media media = new Media(mediaPath.toURI().toString());
         MediaPlayer mediaPlayer = new MediaPlayer(media);
         
         // Set the start time to 30 seconds into the media
         mediaPlayer.setStartTime(Duration.seconds(30));
         
         // Get the start time using getStartTime() method
         Duration startTime = mediaPlayer.getStartTime();
         System.out.println("The media will start playing at: " + startTime.toSeconds() + " seconds");
      });
   }
}

輸出

以下是程式碼的輸出:

The media will start playing at: 30.0 seconds

示例 2

在此示例中,我們建立一個應用程式來載入影片檔案。我們使用 setStartTime() 方法來設定播放的起始時間。設定起始時間後,我們使用 getStartTime() 方法檢索此時間。

import javafx.application.Application;
import javafx.application.Platform;
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 javafx.util.Duration;
import java.io.File;
public class GetStartTimeExample extends Application {
   @Override
   public void start(Stage primaryStage) {
      File mediaPath = new File("./audio_video/sampleTP.mp4");
      // Create a Media object
      Media media = new Media(mediaPath.toURI().toString());
      // Create a MediaPlayer object and attach the Media object
      MediaPlayer mediaPlayer = new MediaPlayer(media);

      // Set the start time to 60 seconds into the media
      mediaPlayer.setStartTime(Duration.seconds(60));

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

      // Create a VBox to hold the label and MediaView
      VBox root = new VBox();

      // Get the start time using getStartTime() method	  
      Duration startTime = mediaPlayer.getStartTime();
      // Use String.valueOf to convert duration to String
      Label starttime = new Label("Start Time: " + String.valueOf(startTime));
      root.getChildren().addAll(viewmedia, starttime);

      Scene scene = new Scene(root, 550, 300);

      // Set the Scene to the Stage
      primaryStage.setScene(scene);
      primaryStage.setTitle("getBalance Example");
      primaryStage.show();
       
      mediaPlayer.play();
   }
   public static void main(String[] args) {
      launch(args);
   }
}

輸出

以下是程式碼的輸出:

setstarttime
廣告