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、およびJARURIのみがサポートされています。

Media()コンストラクターを渡そうとしましたが、(new URI(path)).toString();機能(new URI(path)).toASCIIString()しませんでした。空白をに変更して%20も機能しませんでした。

この状況で私は何ができますか?

4

1 に答える 1

7

問題の原因はわかりませんが、File最初に作成してを呼び出すと機能しますFile#toURI#toASCIIString

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