Итак, у меня есть этот код здесь:
package sample;
import javafx.beans.binding.Bindings;
import javafx.beans.property.DoubleProperty;
import javafx.event.ActionEvent;
import javafx.fxml.FXML;
import javafx.fxml.Initializable;
import javafx.scene.media.Media;
import javafx.scene.media.MediaPlayer;
import javafx.scene.media.MediaView;
import javafx.stage.FileChooser;
import java.io.File;
import java.net.URL;
import java.util.ResourceBundle;
public class Controller implements Initializable {
private MediaPlayer mediaPlayer;
@FXML
private MediaView mediaView;
private String filePath;
@FXML
private void handleButtonAction (ActionEvent event){
FileChooser fileChooser = new FileChooser();
FileChooser.ExtensionFilter filter = new FileChooser.ExtensionFilter("Select a File (*.mp4)", "*.mp4");
fileChooser.getExtensionFilters().add(filter);
File file = fileChooser.showOpenDialog(null);
filePath = file.toURI().toString();
if(filePath != null) {
Media media = new Media(filePath);
mediaPlayer = new MediaPlayer(media);
mediaView.setMediaPlayer(mediaPlayer);
DoubleProperty width = mediaView.fitWidthProperty();
DoubleProperty hight = mediaView.fitHeightProperty();
width.bind(Bindings.selectDouble(mediaView.sceneProperty(), "width"));
hight.bind(Bindings.selectDouble(mediaView.sceneProperty(), "hight"));
mediaPlayer.play();
}
}
@Override
public void initialize(URL url, ResourceBundle rb) {
// TODO
}
}
И вы можете запустить его.Но если вы попытаетесь открыть файл с помощью кнопки openfile, видео не появится, и я просто получу список исключений.Я бы не знал, если это только я, или я сделал что-то не так.
NullPointerExeption
находится в строке 38, доверяя IntelliJ, который я использую.
Caused by: java.lang.NullPointerException
at sample.Controller.handleButtonAction(Controller.java:38))
Так что-тос mediaPlayer / mediaViewer тогда?(MediaView.setMediaPlayer (MediaPlayer);)