我试图在Ubuntu 14.04 64位中执行下面的简单程序。
import javafx.application.Application;
import javafx.scene.*;
import javafx.scene.media.*;
import javafx.stage.Stage;
public class simple extends Application {
public static void main(String[] args) throws Exception { launch(args); }
@Override public void start(final Stage stage) throws Exception {
final MediaPlayer oracleVid = new MediaPlayer(
new Media("http://download.oracle.com/otndocs/products/javafx/JavaRap/prog_index.m3u8")
);
oracleVid.setAutoPlay(true);
stage.setScene(new Scene(new Group(new MediaView(oracleVid)), 540, 208));
stage.show();
oracleVid.play();
}
}
我知道视频和音频格式是正确的。实际上,这个URL取自JavaFX的演示。此外,我已经使用JavaSDK 1.7和相同的硬件在Ubuntu 13.10中测试了应用程序,一切都很好。该应用程序也在Windows中执行。但是,当我在Ubuntu 14.04中尝试Java SDK 1.7和1.8时,它失败了。
我想这与我在配置中缺少的某些编解码器或14.04中没有的某些库有关。
对我来说最糟糕的是应用程序失败的方式。它不会抛出异常,它不会因分段错误而崩溃,它不会抱怨某些丢失的库。相反,它只显示一个背景颜色的窗口,没有声音,视频或任何类型的日志。
有没有人遇到同样的问题?我一直在浏览几个小时,没有。
EDIT。 我总是使用oracle-java。
答案 0 :(得分:1)
这是在Ubuntu 14.04下运行的JavaFX的一个已知问题。
Java 8u40已修复该问题。
Java 8u40 early access builds可用,因此您可以测试修复程序并确保它在您的系统上运行。
答案 1 :(得分:-1)
对于那些寻找变通方法说明的人:
sudo apt-get install yasm
wget https://libav.org/releases/libav-0.8.16.tar.xz
tar xf libav-0.8.16.tar.xz
cd libav-0.8.16
./configure --enable-pic --enable-shared && make
sudo make install