![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 - MediaPlayer getTotalDuration() Method
In JavaFX, the getTotalDuration() method in the MediaPlayer class is used to retrieve the total playback duration including all cycles (repetitions)
In addition, this is a getter method that returns the value of the 'totalDurationProperty'. This property represents the total amount of play time if allowed to play until finished.
If cycleCount is set to 'INDEFINITE', the return value of the getTotalDuration() method will also be 'INDEFINITE'. If the media duration is 'UNKNOWN', then the total duration will likewise be 'UNKNOWN'. Otherwise, the total duration will be the product of the cycle duration and cycle count.
Syntax
Following is the syntax of the 'getTotalDuration()' method of 'MediaPlayer' class −
public final Duration getTotalDuration()
Parameters
This method doesn't takes any parameter.
Return value
This method returns duration instance representing the total amount of the play time.
Example 1
Following is a basic example demonstrating the getTotalDuration() method of 'MediaPlayer' class −
In this example, we crate a media object and a mediaPlayer object to control playback. we set a listener that activates when the mediaPlayer is reddy, at which point we retrieve the total duration with getTotalDuration(). Then we print the media's total duration in seconds to the console.
import javafx.application.Platform; import javafx.scene.media.Media; import javafx.scene.media.MediaPlayer; import javafx.util.Duration; import java.io.File; public class getTotalDurationEx { public static void main(String[] args) { Platform.startup(() -> { File mediaPath = new File("./audio_video/sampleTP.mp4"); // Create a Media object Media media = new Media(mediaPath.toURI().toString()); // Create a MediaPlayer object for the Media. MediaPlayer mediaPlayer = new MediaPlayer(media); // Add a ready listener to the MediaPlayer to access the total duration. mediaPlayer.setOnReady(() -> { // Retrieve the total duration of the media. Duration totalDuration = mediaPlayer.getTotalDuration(); System.out.println("Total Duration: " + totalDuration.toSeconds() + " seconds"); }); // Prepare the MediaPlayer by setting the autoPlay to true. mediaPlayer.setAutoPlay(true); }); } }
Output
Following is the output of the code −
Total Duration: 138.299 seconds
Example 2
In this example, we fetch the total duration of the media using the getTotalDuration() method after setting the MediaPlayer’s cycle count to indefinite.
import javafx.application.Platform; import javafx.scene.media.Media; import javafx.scene.media.MediaPlayer; import javafx.util.Duration; import java.io.File; public class getTotalDurationEx { public static void main(String[] args) { Platform.startup(() -> { File mediaPath = new File("./audio_video/sampleTP.mp4"); // Create a Media object Media media = new Media(mediaPath.toURI().toString()); // Create a MediaPlayer object for the Media. MediaPlayer mediaPlayer = new MediaPlayer(media); // Set the cycle count to indefinite, meaning the media will play endlessly. mediaPlayer.setCycleCount(MediaPlayer.INDEFINITE); // Add a ready listener to the MediaPlayer to access the total duration. mediaPlayer.setOnReady(() -> { // Retrieve the total duration of the media. Duration totalDuration = mediaPlayer.getTotalDuration(); System.out.println("Total Duration: " + totalDuration.toSeconds() + " seconds"); }); // Prepare the MediaPlayer by setting the autoPlay to true. mediaPlayer.setAutoPlay(true); }); } }
Output
Following is the output of the code indicates that the total duration is displayed as infinity.
Total Duration: Infinity seconds
Example 3
In this example, we set up the cycle count play 10 times, and then we retrieve the total duration of the mediaPlayer using the getTotalDuration() method.
import javafx.application.Platform; import javafx.scene.media.Media; import javafx.scene.media.MediaPlayer; import javafx.util.Duration; import java.io.File; public class getTotalDurationEx { 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()); // Create a MediaPlayer object for the Media. MediaPlayer mediaPlayer = new MediaPlayer(media); // Set the cycle count to 10, meaning the media will repeat 10 times. mediaPlayer.setCycleCount(10); // Add a ready listener to the MediaPlayer to access the total duration. mediaPlayer.setOnReady(() -> { // Retrieve the total duration of the media. Duration totalDuration = mediaPlayer.getTotalDuration(); System.out.println("Total Duration: " + totalDuration.toSeconds() + " seconds"); }); // Prepare the MediaPlayer by setting the autoPlay to true. mediaPlayer.setAutoPlay(true); }); } }
Output
Following is the output of the code −
Total Duration: 1528.20521541 seconds