Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/372.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaFX和";MediaException:未知。。。无法创建玩家&引用;_Java_Javafx - Fatal编程技术网

JavaFX和";MediaException:未知。。。无法创建玩家&引用;

JavaFX和";MediaException:未知。。。无法创建玩家&引用;,java,javafx,Java,Javafx,好的,所以我需要编写一个或多或少简单的视频播放器,我选择JavaFX来完成这个任务。到目前为止,我已经编写了一个非常简单(应该可以正常工作)的应用程序,但它经常抛出相同的错误: Exception in Application start method Exception in thread "main" java.lang.RuntimeException: Exception in Application start method at com.sun.javafx.applicat

好的,所以我需要编写一个或多或少简单的视频播放器,我选择JavaFX来完成这个任务。到目前为止,我已经编写了一个非常简单(应该可以正常工作)的应用程序,但它经常抛出相同的错误:

Exception in Application start method
Exception in thread "main" java.lang.RuntimeException: Exception in Application start method
    at com.sun.javafx.application.LauncherImpl.launchApplication1(LauncherImpl.java:875)
    at com.sun.javafx.application.LauncherImpl.lambda$launchApplication$147(LauncherImpl.java:157)
    at com.sun.javafx.application.LauncherImpl$$Lambda$1/1573468.run(Unknown Source)
    at java.lang.Thread.run(Thread.java:745)
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 player.MoviePlayer.start(MoviePlayer.java:23)
    at com.sun.javafx.application.LauncherImpl.lambda$launchApplication1$153(LauncherImpl.java:821)
    at com.sun.javafx.application.LauncherImpl$$Lambda$55/17730007.run(Unknown Source)
    at com.sun.javafx.application.PlatformImpl.lambda$runAndWait$166(PlatformImpl.java:323)
    at com.sun.javafx.application.PlatformImpl$$Lambda$50/11354414.run(Unknown Source)
    at com.sun.javafx.application.PlatformImpl.lambda$null$164(PlatformImpl.java:292)
    at com.sun.javafx.application.PlatformImpl$$Lambda$53/4845991.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at com.sun.javafx.application.PlatformImpl.lambda$runLater$165(PlatformImpl.java:291)
    at com.sun.javafx.application.PlatformImpl$$Lambda$51/26970262.run(Unknown Source)
    at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:95)
    at com.sun.glass.ui.gtk.GtkApplication._runLoop(Native Method)
    at com.sun.glass.ui.gtk.GtkApplication.lambda$null$45(GtkApplication.java:126)
    at com.sun.glass.ui.gtk.GtkApplication$$Lambda$43/4959060.run(Unknown Source)
    ... 1 more
Caused by: com.sun.media.jfxmedia.MediaException: Could not create player!
    at com.sun.media.jfxmediaimpl.NativeMediaManager.getPlayer(NativeMediaManager.java:222)
    at com.sun.media.jfxmedia.MediaManager.getPlayer(MediaManager.java:104)
    at javafx.scene.media.MediaPlayer.init(MediaPlayer.java:467)
    ... 16 more

Process finished with exit code 1

好的,最后我找到了问题的原因-我传递视频路径文件的方式是错误的:

而不是使用
Media Media=新媒体(“file:///home/winged/IdeaProjects/MoviePlayer/video/barsandtone.flv");


我应该使用
Media=new Media(新文件file:///home/winged/IdeaProjects/MoviePlayer/video/barsandtone.flv)toURI().toString())

为了确认这不是一个视频编码问题,您能否查看作品中使用的视频:
Media Media=new Media('http://download.oracle.com/otndocs/products/javafx/oow2010-2.flv");
@James\u D好的,您提供的链接在Windows上运行得很好(在我的Arch Linux控制台上,在X server:0.0上抛出一个错误
java:Fatal IO error 11(资源暂时不可用)。
但我想我会自己解决)。你知道有没有什么教程介绍了JavaFX视频编码的正确方法?
package player;

import javafx.application.Application;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.media.Media;
import javafx.scene.media.MediaPlayer;
import javafx.scene.media.MediaView;
import javafx.scene.paint.Color;
import javafx.stage.Stage;

public class MoviePlayer extends Application {

    public static void main(String[] args) {
        launch(args);
    }

    @Override
    public void start(Stage stage) throws Exception {
        Group root = new Group();

        Media media = new Media("file:///home/winged/IdeaProjects/MoviePlayer/video/barsandtone.flv");
        MediaPlayer player = new MediaPlayer(media);
        MediaView view = new MediaView(player);

        player.setAutoPlay(true);

        root.getChildren().add(view);
        Scene scene = new Scene(root, 400, 400, Color.BLACK);
        stage.setScene(scene);
        stage.show();

        player.play();
    }
}