如何在JavaFX中访问计算机上的本地媒体文件?
以下是我试过的网址:
C:/PROJECT/videos/on2tm_352.flv
file:///C://PROJECT/videos/on2tm_352.flv
(某些网站建议忘记在哪里)
然而,当我将媒体文件放在项目的文件夹中并使用{__DIR__}/on2tm_352.flv
注意:没有输出异常和错误。屏幕只是空白。
使用KLite Codec 583 Mega,JavaFX 1.2,Netbeans 6.8
答案 0 :(得分:5)
它现在正在为我工作:
private static final String MEDIA_URL = "file:/c:/Users/Alejandro/Downloads/oow2010-2.flv";
我几分钟前测试过它......
或类似的东西:
private File file = new File("c:/Users/Alejandro/Downloads/oow2010-2.flv");
private final String MEDIA_URL = file.toURI().toString();
见到你= D
答案 1 :(得分:2)
试试这个:
Media media = new Media(trackFile.toURI().toURL().toString());
MediaPlayer mediaPlayer = new MediaPlayer(media);
答案 2 :(得分:1)
将他们的网址提供给媒体?
请注意,过去曾报道路径中有空格的一些问题,我不知道它是否仍然存在。
[编辑原始邮件后编辑(网址示例)]
第一行不是URL,而是路径。显然媒体播放器接受路径作为URL,但是对于ImageView来说并非如此,所以最好是严格的。
第二行是正确的
第三行有一个潜在的问题:__DIR__
变量已经有一个终结斜杠,所以你不应该添加它,即。写一下{__DIR__}on2tm_352.flv
。不确定这是不是问题(我还没有使用太多视频)但值得尝试。
请注意,打包项目后,此类URL(基于__DIR__
)将指向jar文件。
在JavaFX 1.2中没问题,但由于某些奇怪的原因,他们选择在1.3中禁止这种访问。
答案 3 :(得分:1)
我发现使用磁盘文件执行以下操作更容易。这减轻了我在确定“file:”网址的所有规则时的虚弱脑子:
var file = new File("C:/PROJECT/videos/on2tm_352.flv");
Media {
source: "{file.toURI()}"
}
我避免将{__DIR__}
用于媒体,因为它可以指向“jar:”网址,而JavaFX 1.3中的媒体位置不再支持该网址。
答案 4 :(得分:0)
你们只需要将文件的路径指定为URI路径:
Media media = new Media("file:///C:/Users/David/Downloads/test.flv");
MediaPlayer mediaPlayer = new MediaPlayer(media);
根本不需要实例化文件。