2010-06-08 19 views
1

Comment accéder au fichier multimédia local sur mon ordinateur dans JavaFX?Comment accéder au fichier multimédia local sur mon ordinateur dans JavaFX?

Voici les urls j'essayées:

C:/PROJECT/videos/on2tm_352.flv
file:///C://PROJECT/videos/on2tm_352.flv (suggéré dans certains sites oublièrent où)

Il ne joue cependant, quand je mets le fichier multimédia dans le dossier et l'accès du projet à l'aide {__DIR__}/on2tm_352.flv

Remarque: Aucune exception et erreur ne sont générées. L'écran est juste vide.

KLite Codec 583 Mega, JavaFX 1.2, Netbeans 6.8 sont utilisés

Répondre

1

En donnant leur URL aux médias?

Notez que certains problèmes avec des espaces dans les chemins ont été signalés dans le passé, je ne sais pas si c'est toujours vrai.

[EDIT suite modifier le message d'origine (exemples d'URL)]
La première ligne n'est pas une URL, il est un chemin. Apparemment, le lecteur multimédia accepte les chemins comme URL, mais ce n'est pas le cas pour ImageView, il est donc préférable d'être strict.
La deuxième ligne est correcte.
Troisième ligne ont un problème potentiel: __DIR__ variables a déjà une barre oblique, donc vous ne devriez pas l'ajouter, c'est à dire. écrivez {__DIR__}on2tm_352.flv à la place. Je ne sais pas si c'est le problème (je n'ai pas encore utilisé beaucoup de vidéo) mais ça vaut le coup d'essayer.

Notez qu'une telle URL (basée sur __DIR__) pointera dans un fichier jar une fois le projet empaqueté. Il est OK dans JavaFX 1.2, mais pour une raison étrange, ils ont choisi d'interdire un tel accès dans 1.3.

+0

L'URL fournie ne comporte pas d'espace. Encore ça ne marcherait pas – cancelledout

+0

@cancelledout: Quelle URL? Tant que vous restez vague, les réponses seront génériques ... Avez-vous une erreur? Votre fichier multimédia est-il pris en charge? – PhiLho

+0

Ici, il est: J'ai essayé: fichier C: /PROJECT/videos/on2tm_352.flv : /// C: //PROJECT/videos/on2tm_352.flv (suggérée dans certains sites oublié où) -t-il jouer cependant, quand je mets le fichier multimédia dans le dossier du projet et y accéder en utilisant {__DIR __}/on2tm_352.flv Il n'y a pas d'exceptions et d'erreurs produites. L'écran est juste vide. KLite Codec 583 Mega, JavaFX 1.2, Netbeans 6.8 sont utilisés. – cancelledout

1

J'ai trouvé plus facile de faire ce qui suit avec les fichiers de disque. Cela soulage mon cerveau faible de déterminer toutes les règles de « file: » urls:

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

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

J'éviter d'utiliser {__DIR__} pour les médias car il peut pointer vers un « pot: » URL et non prise en charge plus pour les sites des médias dans JavaFX 1.3.

+0

Merci pour la réponse. Donc, si {__DIR__} n'est pas supporté, comment puis-je accéder à ces fichiers dans un pot alors? – cancelledout

+0

Juste pour être clair {__DIR__} est supporté. Ce qui n'est pas supporté est le chargement d'un fichier multimédia à partir d'un fichier Jar. Ainsi, si {__DIR__} pointe sur un fichier jar, le support ne se chargera pas. Pour une explication, voir http://www.javafx.com/faq/#5.3. – JimClarke

2

Essayez ceci:

Media media = new Media(trackFile.toURI().toURL().toString()); 
MediaPlayer mediaPlayer = new MediaPlayer(media); 
5

Il travaille en ce moment pour moi:

private static final String MEDIA_URL = "file:/c:/Users/Alejandro/Downloads/oow2010-2.flv"; 

Je l'ai testé il y a quelques minutes ....

ou quelque chose comme ça:

private File file = new File("c:/Users/Alejandro/Downloads/oow2010-2.flv"); 
private final String MEDIA_URL = file.toURI().toString(); 

Voir plus tard = D

0

Vous les gars avez juste à indiquer le chemin du fichier comme un chemin URI:

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

Il n'est pas nécessaire d'instancier un fichier du tout.