![JavaFX Tutorial](/javafx/images/javafx-mini-logo.jpg)
- JavaFX Tutorial
- JavaFX - Home
- JavaFX - Overview
- JavaFX Installation and Architecture
- JavaFX - Environment
- JavaFX - Installation Using Netbeans
- JavaFX - Installation Using Eclipse
- JavaFX - Installation using Visual Studio Code
- JavaFX - Architecture
- JavaFX - Application
- JavaFX 2D Shapes
- JavaFX - 2D Shapes
- JavaFX - Drawing a Line
- JavaFX - Drawing a Rectangle
- JavaFX - Drawing a Rounded Rectangle
- JavaFX - Drawing a Circle
- JavaFX - Drawing an Ellipse
- JavaFX - Drawing a Polygon
- JavaFX - Drawing a Polyline
- JavaFX - Drawing a Cubic Curve
- JavaFX - Drawing a Quad Curve
- JavaFX - Drawing an Arc
- JavaFX - Drawing an SVGPath
- JavaFX Properties of 2D Objects
- JavaFX - Stroke Type Property
- JavaFX - Stroke Width Property
- JavaFX - Stroke Fill Property
- JavaFX - Stroke Property
- JavaFX - Stroke Line Join Property
- JavaFX - Stroke Miter Limit Property
- JavaFX - Stroke Line Cap Property
- JavaFX - Smooth Property
- Operations on 2D Objects
- JavaFX - 2D Shapes Operations
- JavaFX - Union Operation
- JavaFX - Intersection Operation
- JavaFX - Subtraction Operation
- JavaFX Path Objects
- JavaFX - Path Objects
- JavaFX - LineTo Path Object
- JavaFX - HLineTo Path Object
- JavaFX - VLineTo Path Object
- JavaFX - QuadCurveTo Path Object
- JavaFX - CubicCurveTo Path Object
- JavaFX - ArcTo Path Object
- JavaFX Color and Texture
- JavaFX - Colors
- JavaFX - Linear Gradient Pattern
- JavaFX - Radial Gradient Pattern
- JavaFX Text
- JavaFX - Text
- JavaFX Effects
- JavaFX - Effects
- JavaFX - Color Adjust Effect
- JavaFX - Color input Effect
- JavaFX - Image Input Effect
- JavaFX - Blend Effect
- JavaFX - Bloom Effect
- JavaFX - Glow Effect
- JavaFX - Box Blur Effect
- JavaFX - GaussianBlur Effect
- JavaFX - MotionBlur Effect
- JavaFX - Reflection Effect
- JavaFX - SepiaTone Effect
- JavaFX - Shadow Effect
- JavaFX - DropShadow Effect
- JavaFX - InnerShadow Effect
- JavaFX - Lighting Effect
- JavaFX - Light.Distant Effect
- JavaFX - Light.Spot Effect
- JavaFX - Point.Spot Effect
- JavaFX - DisplacementMap
- JavaFX - PerspectiveTransform
- JavaFX Transformations
- JavaFX - Transformations
- JavaFX - Rotation Transformation
- JavaFX - Scaling Transformation
- JavaFX - Translation Transformation
- JavaFX - Shearing Transformation
- JavaFX Animations
- JavaFX - Animations
- JavaFX - Rotate Transition
- JavaFX - Scale Transition
- JavaFX - Translate Transition
- JavaFX - Fade Transition
- JavaFX - Fill Transition
- JavaFX - Stroke Transition
- JavaFX - Sequential Transition
- JavaFX - Parallel Transition
- JavaFX - Pause Transition
- JavaFX - Path Transition
- JavaFX Images
- JavaFX - Images
- JavaFX 3D Shapes
- JavaFX - 3D Shapes
- JavaFX - Creating a Box
- JavaFX - Creating a Cylinder
- JavaFX - Creating a Sphere
- Properties of 3D Objects
- JavaFX - Cull Face Property
- JavaFX - Drawing Modes Property
- JavaFX - Material Property
- JavaFX Event Handling
- JavaFX - Event Handling
- JavaFX - Using Convenience Methods
- JavaFX - Event Filters
- JavaFX - Event Handlers
- JavaFX UI Controls
- JavaFX - UI Controls
- JavaFX - ListView
- JavaFX - Accordion
- JavaFX - ButtonBar
- JavaFX - ChoiceBox
- JavaFX - HTMLEditor
- JavaFX - MenuBar
- JavaFX - Pagination
- JavaFX - ProgressIndicator
- JavaFX - ScrollPane
- JavaFX - Separator
- JavaFX - Slider
- JavaFX - Spinner
- JavaFX - SplitPane
- JavaFX - TableView
- JavaFX - TabPane
- JavaFX - ToolBar
- JavaFX - TreeView
- JavaFX - Label
- JavaFX - CheckBox
- JavaFX - RadioButton
- JavaFX - TextField
- JavaFX - PasswordField
- JavaFX - FileChooser
- JavaFX - Hyperlink
- JavaFX - Tooltip
- JavaFX - Alert
- JavaFX - DatePicker
- JavaFX - TextArea
- JavaFX Charts
- JavaFX - Charts
- JavaFX - Creating Pie Chart
- JavaFX - Creating Line Chart
- JavaFX - Creating Area Chart
- JavaFX - Creating Bar Chart
- JavaFX - Creating Bubble Chart
- JavaFX - Creating Scatter Chart
- JavaFX - Creating Stacked Area Chart
- JavaFX - Creating Stacked Bar Chart
- JavaFX Layout Panes
- JavaFX - Layout Panes
- JavaFX - HBox Layout
- JavaFX - VBox Layout
- JavaFX - BorderPane Layout
- JavaFX - StackPane Layout
- JavaFX - TextFlow Layout
- JavaFX - AnchorPane Layout
- JavaFX - TilePane Layout
- JavaFX - GridPane Layout
- JavaFX - FlowPane Layout
- JavaFX CSS
- JavaFX - CSS
- Media with JavaFX
- JavaFX - Handling Media
- JavaFX - Playing Video
- JavaFX Useful Resources
- JavaFX - Quick Guide
- JavaFX - Useful Resources
- JavaFX - Discussion
JavaFX - Media getDuration() Method
In JavaFX, the getDuration() method is a getter method used to retrieve the duration of the media content associated with the 'Media' object without requiring any additional information.
The term 'Duration' represents the length of time or the total playing time of the media, expressed in seconds.
Note − The 'Duration' object returned may contain fractions of seconds, providing precise timing for accurate playback control and synchronization within media applications.
Syntax
Following is the syntax of the 'getDuration()' method of 'Media' class −
public Duration getDuration()
Parameters
This method does not take any parameters.
Return value
This method returns the 'Duration' object, which represents the length of the media content.
Example
Following is the basic example of the getDuration() method −
In this example, we are using an audio file and retrieving the total duration of the audio file with the help of the getDuration() method.
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); } }
Output
Following is the output of the code displaying the total duration of the audio file.
Duration of the media file: 149.81225 seconds
Example
In the following example, we are applying the getDuration() method for retrieving the duration of the embedded video file.
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); } }
Output
Following is the output displaying the total duration in hours, minutes, and seconds after the completion of the video playback.
Duration of the video: 0 hours, 2 minutes, 18 seconds