如何使JavaFXMediaView拉伸介质填充父容器?
我试图让我的视频尺寸自动拉伸,填充MediaView并保持视频的原始纵横比。基本上,我希望我的MediaPlayer在调整大小等方面与父容器相适应,就像所有视频播放器一样如何使JavaFXMediaView拉伸介质填充父容器?,java,javafx,media,Java,Javafx,Media,我试图让我的视频尺寸自动拉伸,填充MediaView并保持视频的原始纵横比。基本上,我希望我的MediaPlayer在调整大小等方面与父容器相适应,就像所有视频播放器一样 如果有人能为如何实现这一点提供一些帮助,我将不胜感激,谢谢。刚刚意识到没有人回答这个问题,所以我会回答 只需将media player fitWidthProperty设置为MediaView的属性,即可: player.fitWidthProperty().bind(mediaView.widthProperty());
如果有人能为如何实现这一点提供一些帮助,我将不胜感激,谢谢。刚刚意识到没有人回答这个问题,所以我会回答 只需将media player fitWidthProperty设置为MediaView的属性,即可:
player.fitWidthProperty().bind(mediaView.widthProperty());
高度(如果需要)也是一样的,还有保留比率和其他内容。这里有一个拉伸到包含场景的示例,场景由维度“大小”设置:
“.fxml”文件中更具声明性的方式是:
...
<Pane fx:id="mediaViewPane">
<children>
<MediaView fx:id="videoView" fitHeight="${mediaViewPane.height}" fitWidth="${mediaViewPane.width}" layoutX="1.0" />
</children>
</Pane>
...
。。。
...
您可以对“${…}”中的任何属性使用“${…}”语法进行表达式绑定。
如果要调用UI元素,必须提供“fx:id”。例如,在本例中,它是fx:id=“mediaViewPane”
因此,您不必关心代码中的UI内容。
对我来说,它更干净了一点。我也很难做到这一点,但我做到了
mediaView.fitWidthProperty().bind(stage.widthProperty());
mediaView.fitHeightproperty().bind(stage.heightProperty());
我为我工作。
mediaView
以与舞台/窗口相同的大小播放。希望有帮助。此代码似乎有误。MediaPlayer没有该属性。这似乎适用于比视频本身更大的尺寸。窗格似乎没有缩小到视频的大小。嗯,好的。我无法再现你的行为。当我尝试上面的片段时,我的MediaView会随着场景的大小而缩小或增大。无论如何,这个答案只是为了展示一种在fxml中执行代码的方法;)实际上,只需将fitWidth/fitHeight属性绑定到其父属性(在kbickar情况下,就是场景)。mediaView.fitWidthProperty().bind(parent.widthProperty());mediaView.fitHeightProperty().bind(parent.heightProperty());
mediaView.fitWidthProperty().bind(stage.widthProperty());
mediaView.fitHeightproperty().bind(stage.heightProperty());