JavaFX在路径中播放带有空格的本地视频

时间:2012-11-14 11:35:29

标签: javafx-2

我正在构建一个可以播放视频的小应用程序,问题是,当我在其路径中添加带有空格的视频时 - 它会给我一个错误:

java.net.URISyntaxException: Illegal character in opaque part at index 13: FILE:C:/Video menu/video/03.mp4

这是我的场景:

    Group root = new Group();
    Scene scene = new Scene(root, 1280, 1024, Color.BLACK);
    String path = new String("FILE:C:/Video menu/touchMV/03.mp4");
    URI uri = new URI(path);
    root.getChildren().add(
            MediaViewBuilder.create()
                    .mediaPlayer(
                            MediaPlayerBuilder.create()
                            .media(
                                    new Media(
                                            path
                                    )

                            ).build()
                    ).build()
    );


    stage.setScene(scene);
    stage.show();

Media(java.lang.String source)文档说它有约束:

  • 提供的URI必须符合java.net.URI。
  • 所要求的RFC-2396
  • 仅支持HTTP,FILE和JAR URI。

我尝试传递一个{(1}}和(new URI(path)).toString();的Media()构造函数,但它没有用。将空格更改为(new URI(path)).toASCIIString()并没有效果。

在这种情况下我该怎么办?

1 个答案:

答案 0 :(得分:7)

我不知道您的问题的原因,但如果您先创建File并致电File#toURI#toASCIIString,它就会有效。

 File file = new File("C:\\Video menu\\touchMV\\03.mp4");
 String path = file.toURI().toASCIIString();