使用vlcj api在Java FX中播放视频 [英] Playing Video in Java FX using vlcj api
问题描述
我正在尝试播放有关Java FX组件的视频但无法播放。
我知道如何使用vlcj播放视频,但是当我尝试相同时我无法在javafx中播放
I am trying to play a video on Java FX components but not able to play. I know how to play a video in swing using vlcj but when I am trying the same I am not able to do so in 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中为setupContentPane做什么摇摆。
I want to know what I need to do in javafx for settingContentPane we do in swing.
推荐答案
EmbeddedMediaPlayerComponent
需要一个重量级的AWT Canvas
播放视频。您无法在JavaFX中使用该方法。
EmbeddedMediaPlayerComponent
requires a heavyweight AWT Canvas
to play the video in. You can't use that approach in JavaFX.
对于JavaFX,您必须自己使用该视频渲染a DirectMediaPlayerComponent
- direct表示直接渲染。在较高的层次上,这涉及获取视频数据(由组件为您提供),然后以某种方式呈现它,例如将视频数据复制到场景中的图像。
For JavaFX you have to render the video yourself using a DirectMediaPlayerComponent
- "direct" meaning "direct rendering". At a high level this involves getting the video data (provided by the component for you) and then you rendering it in some way, like copying the video data to an image in your scene.
这里有一个完整的项目,展示了许多方法,包括一个让可调整大小的视频播放器工作的解决方案:
There is a full project here that shows a number of ways to do it, including one solution to get a resizable video player working:
https://github.com/caprica/vlcj-javafx
这篇关于使用vlcj api在Java FX中播放视频的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!