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。

我试图传递一个 Media() 构造函数(new URI(path)).toString();(new URI(path)).toASCIIString()但它没有用。将空格更改%20为效果不佳。

在这种情况下我能做什么?

4

1 回答 1

7

我不知道您的问题的原因,但是如果您创建一个Filefirst 并调用File#toURI#toASCIIString.

 File file = new File("C:\\Video menu\\touchMV\\03.mp4");
 String path = file.toURI().toASCIIString();
于 2012-11-14T11:47:27.143 回答