Properties von Mediaplayer in JavaFX
In diesem Artikel geht es um die Properties von Mediaplayer in JavaFX. Dabei schauen wir uns an, wie wir verschiedene Properties ansprechen und anpassen können. Wir bauen einen kleinen Mediaplayer, in dem wir die Lautstärke, die Geschwindigkeit und die Balance regeln können. Der Code ist in Form von Kommentaren im Code selbst erklärt.
[image img_id=”6328″ alt=”Properties von Mediaplayer in JavaFX” width=”219″ height=”180″]
Beispiel für Properties von Mediaplayer in JavaFX:
package application;
import java.net.URL;
import javafx.application.Application;
import javafx.beans.InvalidationListener;
import javafx.beans.Observable;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.Slider;
import javafx.scene.layout.GridPane;
import javafx.scene.media.Media;
import javafx.scene.media.MediaPlayer;
import javafx.stage.Stage;
import javafx.util.Duration;
public class Main extends Application {
@Override
public void start(Stage primaryStage) {
try {
GridPane root = new GridPane();
Scene scene = new Scene(root,400,400);
// hier legen wir die Resource an, welche unbedingt im
// entsprechenden Ordner sein muss
// Credits für Musik: bensound.com
final URL resource = getClass().getResource("music.mp3");
// wir legen das Mediaobjekt and und weisen unsere Resource zu
final Media media = new Media(resource.toString());
// wir legen den Mediaplayer an und weisen ihm das Media Objekt zu
final MediaPlayer mediaPlayer = new MediaPlayer(media);
// Wir legen drei Buttons an
Button bPlay = new Button("Play");
Button bPause = new Button("Pause");
Button bStop = new Button("Stop");
// Slider für die Lautstärke
Slider volumeSlider = new Slider(0, 1, 1);
// Wir binden die Lautstärke Property unseres Mediaplayers und die des Sliders
mediaPlayer.volumeProperty().bind(volumeSlider.valueProperty());
Slider rateSlider = new Slider(0, 5, 1);
mediaPlayer.rateProperty().bind(rateSlider.valueProperty());
Slider balanceSlider = new Slider(-1, 1, 0);
mediaPlayer.balanceProperty().bind(balanceSlider.valueProperty());
// Wenn der Play Button angeklickt wird
// Starten wir den Mediaplayer mit der play() Methode
bPlay.setOnAction(e ->{
mediaPlayer.play();
});
// pausieren mit der pause() Methode
bPause.setOnAction(e ->{
mediaPlayer.pause();
});
// stopen mit der stop() Methode
bStop.setOnAction(e ->{
mediaPlayer.stop();
});
// damit der Mediaplayer beendet wird, wenn das Fenster geschlossen wird
primaryStage.setOnCloseRequest(windowEvent ->{
mediaPlayer.stop();
});
GridPane.setConstraints(volumeSlider, 0,1);
GridPane.setConstraints(rateSlider, 0,2);
GridPane.setConstraints(balanceSlider, 0,3);
root.getChildren().addAll(volumeSlider, rateSlider, balanceSlider);
// positionieren unsere Buttons.
GridPane.setConstraints(bPlay, 0,0);
GridPane.setConstraints(bPause, 1,0);
GridPane.setConstraints(bStop, 2,0);
root.getChildren().addAll(bPlay, bPause, bStop);
primaryStage.setScene(scene);
primaryStage.show();
} catch(Exception e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
launch(args);
}
}