2015-09-27 5 views
0

Я пытаюсь встроить видео на веб-сайт в медиа-представление простого приложения javafx. Ive получил образец кода, который я использовал в качестве кода javafx. Он открывает сцену и воспроизводит звук, но не воспроизводит видео. Как я могу заставить его воспроизводить аудио? Im, использующий netbeans IDE 8.0.2, JavaFx 8 и построитель сцен 2.0 Код, который был рассмотрен ниже. Thanx в продвинутый.javafx mediaview воспроизводится только аудио

@FXML MediaView mdv; 
Media media; 
public static MediaPlayer mpl; 
@Override 
public void initialize(URL url, ResourceBundle rb) { 
    media=new Media("http://download.oracle.com/otndocs/products/javafx/oow2010-2.flv"); 
    mpl=new MediaPlayer(media); 
    mpl.setAutoPlay(true); 
    mdv=new MediaView(mpl); 
    mpl.play(); 
    mpl.setOnError(new Runnable() { 
     @Override public void run() { 
      System.out.println("Current Error: " + mpl.getError()); 
     } 
    }); 
} 

Это, как я загружаю детей на сцену

public class Production extends Application { 

@Override 
public void start(Stage stage) throws Exception { 

    Parent root = FXMLLoader.load(getClass().getResource("Vdo.fxml")); 
    Scene scene = new Scene(root); 
    stage.setScene(scene); 
    stage.show(); 
} 

/** 
* @param args the command line arguments 
*/ 
public static void main(String[] args) { 
    launch(args); 
} 

FXML Ive получил после создания GUI от сцены строитель ниже

<?xml version="1.0" encoding="UTF-8"?> 
<?import javafx.scene.media.*?> 
<?import java.lang.*?> 
<?import java.util.*?> 
<?import javafx.scene.*?> 
<?import javafx.scene.control.*?> 
<?import javafx.scene.layout.*?> 

<AnchorPane id="AnchorPane" prefHeight="400.0" prefWidth="600.0" 
xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1" 
fx:controller="production.VdoController"> 
    <children> 
     <MediaView fx:id="mdv" fitHeight="300.0" fitWidth="300.0" layoutX="125.0" layoutY="85.0" /> 
     <Button layoutX="235.0" layoutY="51.0" mnemonicParsing="false" text="Button" /> 
    </children> 
</AnchorPane> 
+0

Как вы добавляете «MediView» в свою сцену? – ItachiUchiha

+0

Я загружаю этот fxml в основной класс как сцену с помощью FXML Loader. –

+0

FXMLs не содержит сцены, я спрашиваю вас, как вы добавляете содержимое FXML в сцену. – ItachiUchiha

ответ

3

Вы Реинициализация MediaView, который был инициализирован FXMLoader. Никогда не делайте этого, потому что вы потеряете ссылку на исходный узел.

Вы должны просто установить MediaPlayer в MediaView вместо повторной инициализации с помощью setMediaPlayer().

@Override 
public void initialize(URL url, ResourceBundle rb) { 
    media=new Media("http://download.oracle.com/otndocs/products/javafx/oow2010-2.flv"); 
    mpl=new MediaPlayer(media); 
    mpl.setAutoPlay(true); 
    mdv.setMediaPlayer(mpl); 
    mpl.play(); 
} 
+0

Это сработало :) Большое спасибо. –

+1

Эй, @AchalaWeerasooriya, пожалуйста, примите ответы, которые вы получили по вашим вопросам, если они решили вашу проблему. –

Смежные вопросы