如何在JavaFX中访问我的计算机上的本地媒体文件?

时间:2010-06-08 10:16:23

标签: media javafx

如何在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

5 个答案:

答案 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);

根本不需要实例化文件。