JavaFX - MediaPlayer getBalance() Method



In JavaFX, the getBalance() method of the 'MediaPlayer' class is a getter method that is used to get the audio balance for the media being played, which controls the left-right output of the media.

This method returns a double value ranging from -1.0 to 1.0, where -1.0 represents the left side, 1.0 represents the right side, and 0 represents the center.

We can set the balance property by using the setBalance() method. If we do not specify a value for the property, it automatically sets to 0.0.

Syntax

Following is the syntax of the 'getBalance()' method of 'MediaPlayer' class −

public final double getBalance()

Parameters

This method does not take any parameters.

Return value

This method returns a 'double' value representing the balance of the media player.

Example 1

Following is a basic example demonstrating the getBalance() method of 'MediaPlayer' class −

In this example, we create a Media instance with the path to the media file. Then, we retrieve the current balance using the getBalance() method and print it to the console.

import javafx.application.Platform;
import javafx.scene.media.Media;
import javafx.scene.media.MediaPlayer;
import java.io.File;
public class GetBalanceExample {
   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 and attach the Media object
         MediaPlayer mediaPlayer = new MediaPlayer(media);
         
         // Get the current balance
         double balance = mediaPlayer.getBalance();
         
         // Output the balance value
         System.out.println("Current audio balance: " + balance);
      });
   }
}

Output

Following is the output of the code that displays the audio's balance, which is set to the center.

Current audio balance: 0.0

Example 2

In the following example, we are creating an application that displays the current media balance value of the embedded video file. We are setting the balance property to 1.0 and using getBalance() method to retrieve the property's value.

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 java.io.File;

public class GetBalanceEx 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 media balance to right
      mediaPlayer.setBalance(1.0);
      
      // creating a MediaView object from the MediaPlayer Object
      MediaView viewmedia = new MediaView(mediaPlayer);
      viewmedia.setFitHeight(270);
      viewmedia.setFitWidth(450);

      // Create a VBox to hold the label and MediaView
      VBox root = new VBox();
	  
	  // Get the current balance
      double balance = mediaPlayer.getBalance();
      // Use String.valueOf to convert double to String
      Label balanceDirection = new Label("mediaBalance: " + String.valueOf(balance));
      root.getChildren().addAll(viewmedia, balanceDirection);

      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);
   }
}

Output

Following is the output of the code, which displays that the media balance is 1.0, making it audible only from the right side.

getbalance
Advertisements