我尝试在我的 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+空格,然后从所有属性中选择 mediaPlayer
。然后再次按 Ctrl+空格键,并选择 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>
请注意mediaPlayer
是 MediaView
的属性(property):
private ObjectProperty<MediaPlayer> mediaPlayer;
同时media
是 MediaPlayer
的命名参数:
public MediaPlayer(@NamedArg("media") Media media)
关于FXML 中的 JavaFX MediaView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30151863/