Pada kesempatan kali ini, saya akan berbagi tutorial sederhana membuat aplikasi pemutar video menggunakan JavaFX.
JavaFX adalah sebuah software platform untuk membangun aplikasi RIA (Rich Internet Application). Selain itu JavaFX juga dibuat dengan tujuan untuk menggantikan posisi Swing dalam membangun aplikasi desktop. Untuk penjelasan lebih lanjut bisa searching di google. :p
Langsung aja, buka Netbeans IDE (atau editor lainnya).
1. Buat project baru. Klik File >> New Project
2. Pilih Category >> JavaFX dan Project >> JavaFX Application.
3. Kemudian masukkan Project Name (nama project terserah),kemudian pilih lokasi penyimpanannya, kemudian uncheck pada bagian Create
Application Class.
4. Nah Project udah dibuat, kemudian pilih project, pada bagian Source Packages, klik kanan, buat Package baru.Disini saya kasih nama packagenya jfx.example.ergun.videoplayer.
5. Setelah bikin package, kita buat Class baru, saya kasih nama classnya VideoPlayerEX.
6. Nah selanjutnya adalah bagian yang kita tunggu-tunggu, yaitu bagian codingnya. :p
Berikut kode yang saya buat :
package jfx.example.ergun.videoplayer;
import static javafx.application.Application.launch;
import java.io.File;
import javafx.application.Application;
import javafx.beans.value.ChangeListener;
import javafx.beans.value.ObservableValue;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.Label;
import javafx.scene.control.Slider;
import javafx.scene.input.MouseEvent;
import javafx.scene.layout.HBox;
import javafx.scene.layout.StackPane;
import javafx.scene.layout.VBox;
import javafx.scene.media.Media;
import javafx.scene.media.MediaPlayer;
import javafx.scene.media.MediaView;
import javafx.stage.FileChooser;
import javafx.stage.Stage;
import javafx.util.Duration;
/**
* @Developer : Erik Gunawan
* @Nickname : EXz
* @Phone : 0896 5332 0577
* @Email : erik.gunawan44@gmail.com
* @Facebook : facebook.com/revolutionist.exz
* @Twitter : twitter.com/_EXz
*/
public class VideoPlayerEX extends Application {
File file;
final Label lblFile = new Label();
Button pilih = new Button();
Button play = new Button();
Button pause = new Button();
Button stop = new Button();
final VBox vb = new VBox();
final Slider s = new Slider();
HBox hb = new HBox();
MediaPlayer mp;
MediaView mv;
@Override
public void start(final Stage primaryStage) throws Exception {
final StackPane root = new StackPane();
primaryStage.setTitle("VideoPlayerEX");
pilih.setText("Pilih File");
play.setText("Play");
pause.setText("Pause");
stop.setText("Stop");
Media m = new Media(fileChooser());
mp = new MediaPlayer(m);
mv = new MediaView(mp);
mp.play();
pilih.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent event) {
mp.dispose();
mp = new MediaPlayer(new Media(fileChooser()));
mv.setMediaPlayer(mp);
mp.play();
mp.setOnReady(new Runnable() {
@Override
public void run() {
onReady(primaryStage);
}
});
mp.currentTimeProperty().addListener(new ChangeListener<Duration>() {
@Override
public void changed(ObservableValue<? extends Duration> ov, Duration t, Duration t1) {
s.setValue(t1.toSeconds());
}
});
}
});
mp.setOnReady(new Runnable() {
@Override
public void run() {
onReady(primaryStage);
}
});
mp.currentTimeProperty().addListener(new ChangeListener<Duration>() {
@Override
public void changed(ObservableValue<? extends Duration> ov, Duration t, Duration t1) {
s.setValue(t1.toSeconds());
}
});
play.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent t) {
mp.play();
}
});
pause.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent t) {
mp.pause();
}
});
stop.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent t) {
mp.stop();
}
});
s.setOnMouseClicked(new EventHandler<MouseEvent>() {
@Override
public void handle(MouseEvent t) {
mp.seek(Duration.seconds(s.getValue()));
}
});
s.setMin(0.0);
s.setValue(0.0);
s.setMax(mp.getTotalDuration().toSeconds());
hb.getChildren().add(pilih);
hb.getChildren().add(play);
hb.getChildren().add(pause);
hb.getChildren().add(stop);
vb.getChildren().add(s);
vb.getChildren().add(lblFile);
vb.getChildren().add(hb);
root.getChildren().add(mv);
root.getChildren().add(vb);
primaryStage.setScene(new Scene(root, 600, 480));
primaryStage.show();
}
private void onReady(Stage stage) {
int w = mp.getMedia().getWidth();
int h = mp.getMedia().getHeight();
stage.setMinWidth(w);
stage.setMinHeight(h);
vb.setMinSize(w-50, 500);
vb.setTranslateY(h+30);
s.setMin(0.0);
s.setValue(0.0);
s.setMax(mp.getTotalDuration().toSeconds());
}
private String fileChooser() {
FileChooser fileChooser = new FileChooser();
FileChooser.ExtensionFilter extFilter = new FileChooser.ExtensionFilter("MP4 Files (*.mp4)", "*.MP4");
fileChooser.getExtensionFilters().add(extFilter);
file = fileChooser.showOpenDialog(null);
String path = "file://" +file.toURI().getPath().replaceAll(" ", "%20");
lblFile.setText(path);
return path;
}
public static void main(String[] args) {
launch(args);
}
}
7. Kemudian kita jalanin deh aplikasinya, klik kanan Project >> Run.
Saat
pertama dijalankan, aplikasi akan menampilkan Filechooser, yaitu kita
disuruh milih file video, sebelumnya untuk video ane set hanya bisa
video dengan format .mp4.
kalo udah milih video, klik Open.
Hasilnya sebagai berikut :
Projectnya bisa di download
di sini.
Sekian tutorial singkat dan sederhana dari saya.
Semoga bermanfaat.