JavaFX中的媒体播放器

时间:2014-04-24 10:46:24

标签: javafx

我试图在JavaFX中加载视频。当我点击加载包含视频的页面时,我收到错误: java.net.URISyntaxException:索引5处不透明部分中的非法字符:file:\ C:\ Users \ Lynsey \ Documents \ My CamStudio Videos \ 1.flv

这是我用来尝试加载媒体的代码

Media media = new Media("file:\\C:\\Users\\Lynsey\\Documents\\My CamStudio Videos\\1.flv");
    MediaPlayer player = new MediaPlayer(media);
    MediaView view = new MediaView(player);
    videoPane.getChildren().add(view);
    player.play();

1 个答案:

答案 0 :(得分:1)

您不能在网址中包含空格。

“快速而肮脏”的修复(我认为)是

Media media = new Media("file:\\C:\\Users\\Lynsey\\Documents\\My%20CamStudio%20Videos\\1.flv");

更好的解决方法是

File file = new File("C:\\Users\\Lynsey\\Documents\\My CamStudio Videos\\1.flv");
// check file exists:
if (file.exists()) {
    Media media = new Media(file.toURI().toURL().toExternalForm());
} else {
    System.out.println("file does not exist");
}

如果您愿意,可以使用java.nio.Path代替java.io.File。我倾向于将File与JavaFX一起用作内置FileChooser,而不是File,而不是Path

如果文件存在且仍然失败,那么视频格式可能不兼容。 tutorial列出了当前支持的格式。