我试图在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();
答案 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列出了当前支持的格式。