gpt4 book ai didi

java - 使用 vlc api 在 Javafx 中播放视频

转载 作者:行者123 更新时间:2023-12-02 14:05:27 31 4
gpt4 key购买 nike

我尝试在 Java FX 组件上播放视频,但无法播放。我知道如何使用 vlcj 在 swing 中播放视频,但是当我尝试相同的操作时,我无法在 javafx 中执行此操作

    @Override
public void start(Stage primaryStage)
{
File f = new File("Video.mp4");
new NativeDiscovery().discover();
EmbeddedMediaPlayerComponent playerComponent = new EmbeddedMediaPlayerComponent();
/*I dont know where to add the playerComponent as we do in swing*/
MediaPlayer mp=playerComponent.getMediaPlayer();
StackPane root = new StackPane();
Scene scene = new Scene(root, 700, 700);
primaryStage.setTitle("Hello World!");
primaryStage.setScene(scene);
primaryStage.show();
}
//above code is for javafx where I am getting a problem
//below code for swing
public void playVideo()
{
new NativeDiscovery().discover();
EmbeddedMediaPlayerComponent playerComponent = new EmbeddedMediaPlayerComponent();
jif[i].setContentPane(playerComponent);
MediaPlayer p = playerComponent.getMediaPlayer();
ft = new FileTest();
videoList = ft.getVideoList();
jif[i].setVisible(true);
frame.setVisible(true);
p.setAspectRatio(width[i] + ":" + height[i]);
p.playMedia(videoList[0]);
}

我想知道我需要在 javafx 中做什么来设置我们在 swing 中所做的ContentPane。

最佳答案

EmbeddedMediaPlayerComponent 需要重量级 AWT Canvas 来播放视频。您不能在 JavaFX 中使用该方法。

对于 JavaFX,您必须使用 DirectMediaPlayerComponent 自行渲染视频 - “direct”意味着“直接渲染”。在较高级别上,这涉及获取视频数据(由组件为您提供),然后以某种方式渲染它,例如将视频数据复制到场景中的图像。

这里有一个完整的项目,展示了多种方法来实现这一点,包括一种使可调整大小的视频播放器正常工作的解决方案:

https://github.com/caprica/vlcj-javafx

关于java - 使用 vlc api 在 Javafx 中播放视频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32476109/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com