2010-06-08 90 views
1

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

这里是我试过的网址:

C:/PROJECT/videos/on2tm_352.flv
file:///C://PROJECT/videos/on2tm_352.flv(在一些网站建议忘记在哪里)

但它确实演的时候,我用把项目的文件夹,并访问其内部的媒体文件{__DIR__}/on2tm_352.flv

注意:没有输出异常和错误。屏幕只是空白。

KLite编解码器583兆,JavaFX的1.2,Netbeans的6.8用于

回答

1

通过给自己的URL到媒体?

请注意,过去有报道过路径空间的一些问题,我不知道它是否仍然如此。

[EDIT以下原始消息编辑(URL的例子)]
第一行是不是一个URL,它是一个路径。显然,媒体播放器接受URL作为路径,但ImageView并非如此,所以最好严格一点。
第二行是正确的。
第三行有一个潜在的问题:__DIR__变量已经有一个终端斜杠,所以你不应该添加它,即。改为写{__DIR__}on2tm_352.flv。不知道这是否是问题(我还没有使用过多的视频),但值得尝试。

请注意,一旦项目打包,此URL(基于__DIR__)将指向jar文件。 在JavaFX 1.2中可以,但由于某些奇怪的原因,他们选择在1.3中禁止这种访问。

+0

我提供的网址没有空格。仍然不会工作 – cancelledout 2010-06-10 17:24:23

+0

@cancelledout:什么网址?只要你保持模糊,答案将是通用的......你有错误吗?您的媒体文件是否支持格式? – PhiLho 2010-06-11 15:49:05

+0

这就是: 我想: C:/PROJECT/videos/on2tm_352.flv 文件:/// C://PROJECT/videos/on2tm_352.flv(在一些网站建议忘记在哪里) 它但是,当我将媒体文件放入项目文件夹并使用{__DIR __}/on2tm_352.flv 访问它时,不会出现例外和错误输出。屏幕只是空白。 KLite Codec 583 Mega,JavaFX 1.2,Netbeans 6.8被使用。 – cancelledout 2010-06-15 01:17:46

1

我发现使用磁盘文件进行以下操作更容易。这减轻了我确定的所有规则的微弱脑“文件:”网址:

var file = new File("C:/PROJECT/videos/on2tm_352.flv"); 

Media { 
    source: "{file.toURI()}" 
} 

我避免使用{__DIR__}媒体,因为它可以指向一个“罐子”的网址,并且不再支持的介质位置在JavaFX 1.3中。

+0

谢谢你的回答。因此,如果{__DIR__}不受支持,那么我如何才能在jar中访问这些文件呢? – cancelledout 2010-07-01 10:43:57

+0

只需要明确{__DIR__}即可。不支持的是从Jar文件加载媒体文件。所以,如果{__DIR__}指向一个jar文件,媒体将不会加载。有关解释,请参阅http://www.javafx.com/faq/#5.3。 – JimClarke 2010-07-06 11:53:14

2

尝试了这一点:

Media media = new Media(trackFile.toURI().toURL().toString()); 
MediaPlayer mediaPlayer = new MediaPlayer(media); 
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

0

你们只需要指定该文件的路径为URI路径:

Media media = new Media("file:///C:/Users/David/Downloads/test.flv"); 
MediaPlayer mediaPlayer = new MediaPlayer(media); 

它不是必需的在所有实例文件。

相关问题