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
广告
© . All rights reserved.