2017-03-28 2 views
0

J'ai fait cette application sur Eclipse pour un projet d'école. C'est juste supposé lancer une vidéo quand un bouton est pressé. Dans l'IDE, tout fonctionne bien, même si une erreur survient, mais ne cause aucun problème (je le laisse, je pense, donc si ça me donne quelque chose maintenant) Maintenant, quand j'exporte le fichier JAR et que j'essaie de l'exécuter , dans le même ordinateur, la vidéo ne joue pas. Que puis-je faire?La vidéo ne joue pas dans VLCJ

JFrame vid = new JFrame(); 
     vid.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
     vid.setBounds(100, 100, 450, 300); 
     vid.setVisible(true); 

     Canvas c = new Canvas(); 
     c.setBackground(Color.BLACK); 
     JPanel p = new JPanel(); 
     p.setLayout(new BorderLayout()); 
     p.add(c); 
     vid.add(p); 

     NativeLibrary.addSearchPath(RuntimeUtil.getLibVlcLibraryName(),"C:/Program Files/VideoLAN/VLC"); 
     Native.loadLibrary(RuntimeUtil.getLibVlcLibraryName(), LibVlc.class); 
     MediaPlayerFactory mpf = new MediaPlayerFactory(); 
     EmbeddedMediaPlayer emp = mpf.newEmbeddedMediaPlayer(new Win32FullScreenStrategy(vid)); 
     emp.setVideoSurface(mpf.newVideoSurface(c)); 
     emp.toggleFullScreen(); 
     emp.setEnableMouseInputHandling(false); 
     emp.setEnableKeyInputHandling(false); 
     String file="/resources/sky.mp4"; 
     emp.prepareMedia(file); 
     emp.play(); 

Voici le code d'erreur apparaît:

[0000000017a2b420] core vout display error: Failed to set on top 

S'il vous plaît, aidez-moi, comme je l'ai besoin du projet de travailler.

+0

Est-ce que '/ resources/sky.mp4' est contenu dans le fichier Jar ou sur le disque? Si c'est dans le fichier Jar, il ne sera pas jouable, car c'est une entrée dans un fichier Zip, pas un fichier sur le disque, vous devrez soit l'extraire, soit utiliser 'Class # getResource' pour obtenir une' URL 'référence que 'VLCj' pourrait être en mesure de jouer – MadProgrammer

+0

Puis-je créer un dossier pour extraire le Jar et y mettre le fichier afin que le programme le joue? –

+0

En théorie, oui. Vous devez tenir compte du fait que vous n'avez pas les permissions pour écrire le fichier et choisir un emplacement susceptible de vous fournir un accès (comme le répertoire personnel de l'utilisateur) – MadProgrammer

Répondre

0

Bon, je dois travailler un peu. Comme je ne peux pas utiliser une URL au lieu de String, et String ne me laisse pas faire une classe # getResource, je décide finalement de l'exécuter depuis un dossier public qui ne devrait pas changer, en théorie, de pc en pc.

donc mon code finissent par être:

String file = new File("C:/Users/Public/Videos/sky.mp4").getAbsolutePath(); 
     emp.prepareMedia(file); 
     emp.play(); 

Sans idéal pour passer sans conseils, nous allons installer le programme, il fait le travail.

+0

macs MadProgrammer

+0

@MadProgrammer School a seulement Windows, donc pas de problème. –