JavaFX Media Player无法正常工作 [英] JavaFX Media Player not working

查看:1117
本文介绍了JavaFX Media Player无法正常工作的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

当我运行此代码时,我得到两个例外。我正确安装了Java 8,它是oracle版本(不是OpenJDK)。这个相同的代码工作正常并在Windows 8上使用Java 8播放媒体。我不想使用应用程序,因为我试图从更多(非JavaFX)代码播放此媒体。

When I run this code, I get two exceptions. I have Java 8 installed correctly and it is the oracle version (NOT OpenJDK). This same code works fine and plays the media without any problems on Windows with Java 8. I do not want to use an Application because I am trying to play this media from more (Non-JavaFX) code.

import javafx.embed.swing.JFXPanel;
import javafx.scene.media.Media;
import javafx.scene.media.MediaPlayer;

public class Test {
    public static void main(String[] args) {
        new JFXPanel();//Required to initialize JavaFX or I get this exception: Exception in thread "Thread-0" java.lang.IllegalStateException: Toolkit not initialized
        String fileLocation = "file:/home/chris/Music/jawstheme.mp3";
        System.out.println(fileLocation);
        Media hit = new Media(fileLocation);
        MediaPlayer mediaPlayer = new MediaPlayer(hit);
        mediaPlayer.play();
    }
}

这是我得到的例外。

file:/home/chris/Music/jawstheme.mp3
Exception in thread "main" 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 Test.main(Test.java:11)
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)
    ... 2 more


推荐答案

你没说,但我打赌你在使用Ubuntu。

You didn't say but I bet you're using Ubuntu.

这是JavaFX的一个bug 。

错误报告: https://bugs.openjdk.java .net / browse / JDK-8150503

This is a bug of JavaFX.
Bug report: https://bugs.openjdk.java.net/browse/JDK-8150503

它已在Java 9中修复,所以更新到Java 9将解决这个问题。

It's fixed in Java 9, so updating to Java 9 will solve this problem.

使用 org .frice.utils.media.AudioManager.play https://github.com提供/ icela / FriceEngine (这是一个1.6mb的jar库,你只需使用它的 AudioManager.play ,支持mp3。)

Use org.frice.utils.media.AudioManager.play provided by https://github.com/icela/FriceEngine (it's a 1.6mb jar library, you just have to use it's AudioManager.play, mp3 is supported).

将您的mp3文件转换为wav格式,JavaFX支持 MediaPlayer

Convert your mp3 file into wav format, which is supported by JavaFX MediaPlayer.

不要在Ubuntu上运行它。

Don't run this on Ubuntu.

这篇关于JavaFX Media Player无法正常工作的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆