1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83
|
package test;
import java.io.File;
import java.net.MalformedURLException;
import java.net.URL;
import javafx.application.Application;
import javafx.beans.property.ObjectProperty;
import javafx.beans.property.SimpleObjectProperty;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.ToolBar;
import javafx.scene.control.ToolBarBuilder;
import javafx.scene.layout.BorderPane;
import javafx.scene.layout.BorderPaneBuilder;
import javafx.scene.media.*;
import javafx.stage.FileChooser;
import javafx.stage.FileChooserBuilder;
import javafx.stage.Stage;
/**
*
* @author Fabrice
*/
public class Main extends Application {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
launch(args);
}
private final ObjectProperty<MediaPlayer> mediaPlayer = new SimpleObjectProperty<>(this, "mediaPlayer", null);
public final void setMediaPlayer(MediaPlayer value) {
mediaPlayer.set(value);
}
public final MediaPlayer getMediaPlayer() {
return mediaPlayer.get();
}
public final ObjectProperty<MediaPlayer> mediaPlayerProperty() {
return mediaPlayer;
}
@Override
public void start(final Stage primaryStage) {
primaryStage.setTitle("Media Test");
Button loadButton = new Button();
loadButton.setText("Open..");
loadButton.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent event) {
FileChooser dialog = FileChooserBuilder.create().build();
File file = dialog.showOpenDialog(primaryStage);
if (file == null) {
return;
}
MediaPlayer mediaPlayer = getMediaPlayer();
if (mediaPlayer != null) {
mediaPlayer.stop();
setMediaPlayer(null);
}
try {
URL mediaURL = file.toURI().toURL();
Media media = MediaBuilder.create().source(mediaURL.toExternalForm()).build();
mediaPlayer = MediaPlayerBuilder.create().media(media).build();
mediaPlayer.play();
setMediaPlayer(mediaPlayer);
} catch (MalformedURLException mURLe) {
mURLe.printStackTrace();
}
}
});
ToolBar toolBar = ToolBarBuilder.create().items(loadButton).build();
MediaView mediaView = MediaViewBuilder.create().build();
mediaView.mediaPlayerProperty().bind(mediaPlayerProperty());
BorderPane contentPane = BorderPaneBuilder.create().top(toolBar).center(mediaView).build();
primaryStage.setScene(new Scene(contentPane, 300, 250));
primaryStage.show();
}
} |
Partager