Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/apache-kafka/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在javafx中播放来自FileChooser的视频_Java_Javafx - Fatal编程技术网

如何在javafx中播放来自FileChooser的视频

如何在javafx中播放来自FileChooser的视频,java,javafx,Java,Javafx,我希望您能帮助我解决这个问题,我尝试在所有程序中使用按钮打开like选项文件来播放视频,但它不起作用。我不知道怎么了 这是我的代码: btn.setOnAction(new EventHandler<ActionEvent>() { @Override public void handle(ActionEvent event) { FileChooser chooser = new FileChooser();

我希望您能帮助我解决这个问题,我尝试在所有程序中使用
按钮
打开like选项文件来播放视频,但它不起作用。我不知道怎么了

这是我的代码:

btn.setOnAction(new EventHandler<ActionEvent>() {

        @Override
        public void handle(ActionEvent event) {
            FileChooser chooser = new FileChooser();
            FileChooser.ExtensionFilter filter = new FileChooser.ExtensionFilter("select your media(*.mp4)", "*.mp4");
            chooser.getExtensionFilters().add(filter);
            File file = chooser.showOpenDialog(primaryStage);
            if ( file !=null){

                Media source = new Media(file.getPath());
                MediaPlayer player = new MediaPlayer(source);
                MediaView view = new MediaView(player);
                root.getChildren().add(view);
                player.play();


            }
             else {
                label.setText("vide ");
            }
btn.setOnAction(新的EventHandler(){
@凌驾
公共无效句柄(ActionEvent事件){
FileChooser chooser=新建FileChooser();
FileChooser.ExtensionFilter=newfilechooser.ExtensionFilter(“选择媒体(*.mp4)”,“*.mp4”);
chooser.getExtensionFilters().add(过滤器);
File=chooser.showOpenDialog(primaryStage);
如果(文件!=null){
媒体源=新媒体(file.getPath());
MediaPlayer=新的MediaPlayer(来源);
MediaView视图=新的MediaView(播放器);
root.getChildren().add(视图);
player.play();
}
否则{
label.setText(“vide”);
}
您将路径传递给。但是,此构造函数需要一个URI字符串。幸运的是,
文件
可以使用以下方法转换为
URI


您应该使用
文件://
附加
文件.getPath()
,即
媒体源=新媒体(“文件://”+file.getPath())
@ItachiUchiha:真的吗?你自己做,即使
文件
有这样的方法?试着用一个文件名中有空格的文件按你的方式做,你会得到一个例外…@fabian我发布了第一件事情。我会接受你发布的答案是一个合适的解决方案。
Media source = new Media(file.toURI().toString());