2015-02-23 5 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

+0

Теперь я кодировал видео с помощью VLC, и теперь видео открывается, но не воспроизводится. Я использовал код примера из ссылки, которую вы отправили, и теперь я получаю сообщение об ошибке асинхронной ошибки Handle в MediaView: [[email protected]950da] ERROR_MEDIA_INVALID: ERROR_MEDIA_INVALID – Gillardo

+0

Казалось бы, ваш медиафайл неправильно закодирован в формат, который может понять JavaFX. – jewelsea

ответ

0

убедитесь, что ваше видео оригинальное, у меня была такая же проблема с видео, которое я записал с моего компьютера, и преобразовал его в mp4, он играет, но я не вижу, но когда я использовал оригинальную, играл и показывал в то же время. Я также обнаружил, что расширение wmv и avi не поддерживается.

Надеюсь, вы устраните эту проблему.