JavaFx MediaPlayer Errore “Imansible creare player!” In Ubuntu 14.04

Ho installato Ubuntu 14.04 e sto ricevendo un errore quando istanzio un MediaPlayer.

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() { @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); } } 

Il problema è quando creo MediaPlayer:

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

Il messaggio di eccezione:

 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.(MediaPlayer.java:414) at javafxapplication2.FXMLDocumentController.handleButtonAction(FXMLDocumentController.java:34) 

Ho già installato Ubuntu-restricted-extras e tutti i codec necessari per visualizzare i video mp4. Quando suono il video con Vlc o altri lettori, non ci sono problemi.

Potrebbe essere un problema JavaFx in Ubuntu 14.04?

    Ho provato con jre-1.8

    Puoi installare manualmente la versione richiesta delle librerie av scaricandole da http://www.ubuntuupdates.org/ . Cerca i pacchetti libavutil51 , libavformat53 , libavcodec53

    Scarica quelli che corrispondono all’architettura della tua JVM e usa sudo dpkg -i libav*.deb per installarli.

    Ho avuto lo stesso problema su Ubuntu 14.04, sembra che l’ultima versione di javaFx fornita con jdk 8 non riconosca libavcodec54 (che viene fornito con Ubuntu 14.04)

    Per poter utilizzare il video: installare l’ultima versione di Oracle (8u40) dal sito Web di Oracle.

    passi:

    1. Scarica l’ultima versione di Jdk per il tuo sistema da ( http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html )

    2. Decomprimere il file in / usr / lib / jvm

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

    3. Imposta la versione java corrente con:

      aggiornamento-alternative –config java
      update-alternatives –config javac

    Per vedere più dettagli sul bug, vedere: https://bugs.openjdk.java.net/browse/JDK-8094633

    Ubuntu 14 non è (attualmente) una configurazione supportata per Java 8 , forse funzionerà, forse non lo sarà (sono supportati Ubuntu 12 e 13). Inoltre, hai le librerie giuste installate? Che funzioni con VLC, non importa. Per Linux, i requisiti per i media Java sono elencati nel documento delle configurazioni supportate:

    È necessario installare GLIB 2.28 per eseguire JavaFX Media.

    È necessario installare quanto segue al fine di supportare audio AAC, audio MP3, video H.264 e streaming live HTTP:

     libavcodec53 and libavformat53 on Ubuntu Linux 12.04 or equivalent. 
    • Il supporto video VP6 non richiede alcun modulo di terze parti.
    • Sulle piattaforms Linux, l’installazione di libavformat determina automaticamente l’installazione di libavcodec .

    Inoltre, MP4 è solo un formato contenitore e non tutti i file MP4 vengono creati uguali. È necessario assicurarsi che, oltre al tipo di contenitore utilizzato, che il supporto all’interno del codificatore sia conforms a un tipo di codifica supportato e che si stia accedendo al supporto utilizzando un protocollo supportato.

    Se si dispone di una macchina non ubuntu (ad esempio una macchina Windows o OS X), provare a eseguire l’applicazione per riprodurre i file multimediali utilizzando tale (solo per vedere se il problema è specifico per l’installazione runtime o – se ciò non ha funzionato – è probabilmente correlato alla codifica che stai utilizzando piuttosto che al runtime).