有没有一种方法可以刷新具有vlcj媒体组件的JFrame?

时间:2019-06-19 12:27:22

标签: java swing vlcj

我正在制作两个程序。

一个是执行mjpg-streamer的python 3程序,另一个是播放由mjpg-streamer传输到网络的视频的java程序。

Python 3程序是在raspberry-pi 3中制作的,并通过网络摄像头传输视频。

我使用JFrame和vlcj在Java swing中播放视频,并且效果很好。

例如,当我使用python 3执行mjpg-streamer然后单击带有Java的JButton时,JFrame通过从网址获取视频来显示视频,然后,如果我停止mjpg-streamer,JFrame也将停止显示视频(显示为黑色屏幕)。

但是,到目前为止,当我再次执行mjpg-streamer时,它不再显示视频了。我必须关闭JFrame并再次单击JButton才能查看视频。

当我停止执行mjpg-streamer之后执行mjpg-streamer时,我想使JFrame显示视频而不关闭JFrame并再次执行它。

因此,我尝试使用mouselistener或keyboardlistener刷新它,但是没有用。我认为EmbeddedMediaPlayerComponent占据了每个JFrame的空间。

我希望你们能帮助我。

感谢您的阅读!

EXIT.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                EmbeddedMediaPlayerComponent component = new EmbeddedMediaPlayerComponent();

                final JFrame fs = new JFrame("Parking Lot 1");
                fs.setContentPane(component);
                fs.setBounds(100, 100, 800, 600);
                fs.setResizable(false);
                fs.setLocationRelativeTo(null);
                fs.addWindowListener(new WindowAdapter() {
                    public void windowClosing(WindowEvent e) {
                        component.release();
                        fs.setVisible(false);
                        fs.dispose();
                    }
                });
                fs.setVisible(true);
                component.mediaPlayer().media().play("http://IP:8090/?action=stream"); // sorry IP is my ip
            }
        });

0 个答案:

没有答案