我正在为 Java FX 中的音乐播放器编写代码,我使用由MediaPlayer
类初始化的Media
类。到目前为止,我认为 Media 构造函数的源必须URI
在字符串中,所以我编写了这段代码,用于将歌曲文件列表添加到播放列表并播放这样的列表:
public void setPlaylist (List<File> lista) {
songsList.clear();
for (File s : lista) {
songsList.add(s.toURI());
}
}
这工作正常。但是,当我想获取一个包含文件夹路径的文件,并以 URI 格式输入每个文件的名称时,我遇到了一些麻烦,这是我迄今为止尝试过的:
public void setPlaylist (File folder) {
songsList.clear();
for (String s : folder.list()) {
try {
songsList.add(new URI("file:///" + (folder + "\\" + s).replace("\\", "/").replaceAll(" ", "%20")));
} catch (URISyntaxException ex) {
Logger.getLogger(PlayList.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
我收到这样的错误日志:
严重:null java.net.URISyntaxException:索引 78 处的路径中存在非法字符:file:///C:/Users/Diego%20Aguilar/Music/3%20Grandes%20de%20la%20Banda/AlbumArt_{9AEABE24-F5A2-441C -A71A-D061E000A9BA}_Large.jpg