0
我试图加载媒体文件,但我得到它一个空白屏幕,但我能听到播放文件。该文件位于我的项目中名为资源的文件夹中。JavaFX MediaPlayer什么都没显示?
这是代码。
public class ScreenSaverController implements IControlledScreen {
Main app;
public void setApp(Main application) {
app = application;
}
@Override
public void onDestroy() {
}
@FXML
private MediaView mediaView;
@FXML
protected void initialize() {
URL url = getClass().getResource("/resources/screenSaver.mp4");
MediaPlayer mediaPlayer = new MediaPlayer(new Media(url.toString()));
mediaView.setMediaPlayer(mediaPlayer);
mediaPlayer.play();
}
}
我FXML文件,只包含这
<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.scene.media.*?>
<?import java.lang.*?>
<?import javafx.scene.layout.*?>
<?import javafx.scene.layout.BorderPane?>
<BorderPane prefHeight="1024.0" prefWidth="1280.0" xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1">
<center>
<MediaView fx:id="mediaView" fitHeight="1024.0" fitWidth="1280.0" BorderPane.alignment="CENTER" />
</center>
</BorderPane>
正如我说,我可以听到该文件,但没有任何显示。我曾尝试使用同一个文件的mp4和flv版本,两者都做同样的事情,但没有声音。
如果我将代码更改为这个,我可以看到一个视频
MediaPlayer mediaPlayer = new MediaPlayer(new Media("http://download.oracle.com/otndocs/products/javafx/oow2010-2.flv"));
我有我的jdk升级到1.8.0_31版本,还是一样。
谁知道我做错了什么?我在使用本地文件时应该做些什么?
[JavaFX media javadoc](http://docs.oracle.com/javase/8/javafx/api/javafx/scene/media/package-summary.html)详细信息支持JavaFX的编解码器 - 确保您的视频使用支持的编解码器进行编码。还要添加javadoc页面上提到的错误处理来解决任何媒体播放错误。确保您的系统满足[JavaFX的媒体播放最小认证的配置(http://www.oracle.com/technetwork/java/javase/certconfig-2095354.html)。 – jewelsea 2015-02-23 20:38:16
我现在使用VLC对视频进行了编码,现在视频打开了,但没有播放。我已经从你给的链接中使用的示例代码,现在我得到一个错误说在MediaView处理异步错误:[[email protected]950da] ERROR_MEDIA_INVALID:ERROR_MEDIA_INVALID – Gillardo 2015-02-23 21:50:02
这似乎是你的媒体文件未正确编码为JavaFX可以理解的格式。 – jewelsea 2015-02-23 21:52:25