Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/379.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使JavaFXMediaView拉伸介质填充父容器?_Java_Javafx_Media - Fatal编程技术网

如何使JavaFXMediaView拉伸介质填充父容器?

如何使JavaFXMediaView拉伸介质填充父容器?,java,javafx,media,Java,Javafx,Media,我试图让我的视频尺寸自动拉伸,填充MediaView并保持视频的原始纵横比。基本上,我希望我的MediaPlayer在调整大小等方面与父容器相适应,就像所有视频播放器一样 如果有人能为如何实现这一点提供一些帮助,我将不胜感激,谢谢。刚刚意识到没有人回答这个问题,所以我会回答 只需将media player fitWidthProperty设置为MediaView的属性,即可: player.fitWidthProperty().bind(mediaView.widthProperty());

我试图让我的视频尺寸自动拉伸,填充MediaView并保持视频的原始纵横比。基本上,我希望我的MediaPlayer在调整大小等方面与父容器相适应,就像所有视频播放器一样


如果有人能为如何实现这一点提供一些帮助,我将不胜感激,谢谢。

刚刚意识到没有人回答这个问题,所以我会回答

只需将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());