2015-02-23 142 views
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版本,还是一样。

谁知道我做错了什么?我在使用本地文件时应该做些什么?

+0

[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

+0

我现在使用VLC对视频进行了编码,现在视频打开了,但没有播放。我已经从你给的链接中使用的示例代码,现在我得到一个错误说在MediaView处理异步错误:[[email protected]950da] ERROR_MEDIA_INVALID:ERROR_MEDIA_INVALID – Gillardo 2015-02-23 21:50:02

+0

这似乎是你的媒体文件未正确编码为JavaFX可以理解的格式。 – jewelsea 2015-02-23 21:52:25

回答

0

确保影片是一个原始的一个,我有我从我的电脑记录,并将其转换为MP4视频同样的问题,它起着但我看不到,但是当我用原来的一个,它同时播放并显示。 我也发现我有扩展wmv和avi不支持。

我希望您能与这个解决您的问题。