2014-06-06 2 views
3

J'ai installé Ubuntu 14.04 et j'obtiens une erreur lorsque j'instancie un MediaPlayer.JavaFx MediaPlayer "Impossible de créer un lecteur!" erreur dans Ubuntu 14.04

package mediatest; 

import java.io.File; 
import javafx.application.Application; 
import javafx.event.ActionEvent; 
import javafx.event.EventHandler; 
import javafx.scene.Scene; 
import javafx.scene.control.Button; 
import javafx.scene.layout.StackPane; 
import javafx.scene.media.Media; 
import javafx.scene.media.MediaPlayer; 
import javafx.stage.Stage; 

/** 
* 
* @author DESARROLLO 
*/ 
public class MediaTest extends Application { 

    @Override 
    public void start(Stage primaryStage) { 
     Button btn = new Button(); 
     btn.setText("Say 'Hello World'"); 
     btn.setOnAction(new EventHandler<ActionEvent>() { 

      @Override 
      public void handle(ActionEvent event) { 
       Media media = new Media(new File("rotate.mp4").toURI().toASCIIString()); 
       MediaPlayer player = new MediaPlayer(media); 
      } 
     }); 

     StackPane root = new StackPane(); 
     root.getChildren().add(btn); 

     Scene scene = new Scene(root, 300, 250); 

     primaryStage.setTitle("Hello World!"); 
     primaryStage.setScene(scene); 
     primaryStage.show(); 
    } 

    /** 
    * @param args the command line arguments 
    */ 
    public static void main(String[] args) { 
     launch(args); 
    } 

} 

Le problème est quand je crée le MediaPlayer:

Media media = new Media(new File("rotate.mp4").toURI().toASCIIString()); 
MediaPlayer player = new MediaPlayer(media); 

Le message d'exception:

Caused by: MediaException: UNKNOWN : com.sun.media.jfxmedia.MediaException: Could not create player! : com.sun.media.jfxmedia.MediaException: Could not create player! 
at javafx.scene.media.MediaException.exceptionToMediaException(MediaException.java:146) 
at javafx.scene.media.MediaPlayer.init(MediaPlayer.java:511) 
at javafx.scene.media.MediaPlayer.<init>(MediaPlayer.java:414) 
at javafxapplication2.FXMLDocumentController.handleButtonAction(FXMLDocumentController.java:34) 

Je l'ai déjà installé ubuntu-restricted-extras, et tous les codecs nécessaires pour afficher vidéos MP4. Lorsque je joue la vidéo avec Vlc ou un autre lecteur, il n'y a pas de problème.

Peut-il s'agir d'un problème JavaFx sous Ubuntu 14.04?

J'ai essayé avec jre-1,8

+0

Pouvez-vous poster un [MCVE] (http://stackoverflow.com/help/mcve) représentant votre erreur! – ItachiUchiha

+0

Désolé, le voilà! – juanscolari

Répondre

1

Ubuntu 14 n'est pas (actuellement) un supported configuration for Java 8, peut-être cela va fonctionner, peut-être il ne sera pas (Ubuntu 12 et 13 sont pris en charge). Aussi, avez-vous installé les bonnes bibliothèques? Que cela fonctionne avec VLC, n'a pas d'importance. Pour Linux, les exigences relatives aux supports Java sont répertoriées dans le document de configuration pris en charge:

Vous devez installer GLIB 2.28 pour exécuter JavaFX Media.

Vous devez installer les éléments suivants afin de soutenir l'audio AAC, MP3 audio, vidéo H.264 et HTTP Live Streaming:

libavcodec53 and libavformat53 on Ubuntu Linux 12.04 or equivalent. 
  • VP6 support vidéo ne nécessite pas de modules tiers.
  • Sur les plateformes Linux, l'installation de libavformat entraîne automatiquement l'installation de libavcodec.

Aussi, MP4 est un format de conteneur et tous les fichiers MP4 sont créés égaux. Vous devez vous assurer que, en plus du type de conteneur utilisé, le support à l'intérieur de l'encodeur est conforme à supported encoding type et que vous accédez au support à l'aide d'un protocole pris en charge. Si vous avez une machine non-ubuntu (par exemple une machine Windows ou OS X), essayez d'exécuter votre application pour lire votre média en utilisant cela (juste pour voir si votre problème est spécifique à votre installation en cours d'exécution ou - si n'a pas fonctionné - il est probablement lié à l'encodage que vous utilisez plutôt qu'à l'exécution).

+0

J'ai essayé d'installer tout ce que vous avez dit et rien ne s'est passé. Dans W7 et Ubuntu 12.04 il est en cours d'exécution, donc je suppose que c'est un problème Ubuntu 14.04 – juanscolari

2

Vous pouvez installer manuellement la version requise des bibliothèques av en les téléchargeant depuis http://www.ubuntuupdates.org/. Recherche des paquets libavutil51, libavformat53, libavcodec53

Télécharger les correspond à l'architecture de votre machine virtuelle et utiliser sudo dpkg -i libav*.deb pour les installer.

+0

Obtention des paquets énumérés ci-dessus (avec leurs dépendances) a travaillé pour moi sur Ubuntu 14.10 en utilisant Oracle Java 8u40 jdk pour construire et exécuter. J'ai ajouté 'http://archive.ubuntu.com/ubuntu précise main' aux sources logicielles et utilisé Synaptic Package Manager. Je suis allé de l'avant et libavutil54 enlevé au préalable juste au cas où. La simple mise à jour vers java 8u40 n'aborde pas l'erreur dans la question d'origine. –

2

J'ai eu le même problème sur Ubuntu 14.04, il semble que la dernière version de JavaFX qui vient avec le JDK 8 ne reconnaît pas libavcodec54 (qui vient livré avec Ubuntu 14.04)

Pour pouvoir utiliser la vidéo : Installez la dernière version d'Oracle (8u40) à partir du site Web Oracle.

Étapes:

  1. Télécharger la dernière version Jdk pour votre système à partir (http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html)

  2. Décompressez le fichier dans/usr/lib/jvm

    tar -xvf jdk-8u40 -linux- [arch_type] .tar.gz
    mv jdk-8u40/usr/lib/jvm

  3. Set e e version java avec:

    update-alternatives de la java
    update-alternatives de la javac

Pour voir plus de détails sur le bug voir: https://bugs.openjdk.java.net/browse/JDK-8094633

+0

Si vous êtes arrivé ici à partir de la question "duplicate" liée, notez que la mise à jour vers java 8u40 ne résout pas le problème dans Ubuntu 14.10. –

+1

Oui, @DustinCharles a raison, cette réponse suppose que libavcodec54/libavutil54 est installé sur votre système. Je ne sais pas quelle version de libavutil54 est livré avec Ubuntu 14.10. Pour résoudre ce problème, vous pouvez télécharger libavutil54 comme mentionné dans votre commentaire sur le post précédent. Si vous voulez, je peux modifier les instructions pour inclure cela. –

Questions connexes