FXML 中的 JavaFX MediaView

JavaFX MediaView in FXML

我曾尝试在我的 fxml 中创建一个 MediaView,但它似乎不起作用,只会出现错误。我正在播放的视频是基于本地的。

<MediaView>
   <MediaPlayer>
      <Media source="vid/video.avi"/>
   </MediaPlayer>
</MediaView>

使用您的 FXML 代码,我收到以下警告:

Class javafx.scene.media.MediaView has no default property. Place javafx.scene.media.MediaView content in a proper element.

Class javafx.scene.media.MediaPlayer has no default property. Place javafx.scene.media.MediaPlayer content in a proper element.

如果您在 NetBeans 上编辑 FXML 文件,当您开始添加 <MediaView> 时,单击 Ctrl+space,然后从所有属性中,select mediaPlayer。然后再次Ctrl+space,然后select MediaPlayer。现在添加 media,最后添加 Media.

它应该是这样的:

<AnchorPane prefHeight="480.0" prefWidth="640.0" xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1">
    <children>
        <MediaView >
            <mediaPlayer>
                <MediaPlayer autoPlay="true">
                    <media>
                        <Media source="http://download.oracle.com/otndocs/products/javafx/oow2010-2.flv" />
                    </media>
                </MediaPlayer>
            </mediaPlayer>    
        </MediaView>
    </children>
</AnchorPane>

请注意 mediaPlayerMediaView 的 属性:

private ObjectProperty<MediaPlayer> mediaPlayer;

mediaMediaPlayer 的命名参数:

public MediaPlayer(@NamedArg("media") Media media)