gpt4 book ai didi

java - 还有其他方法可以在java面板上输出网络视频流吗?

转载 作者:行者123 更新时间:2023-12-02 02:45:41 24 4
gpt4 key购买 nike

我编写了代码,当我单击 java swing 按钮时,JAVA 会播放 python 客户端发送到网络的视频流。 (我使用vlcj和mjpg-streamer在java swing JFrame上播放视频流。)

不幸的是,它占用了所有 JFrame 空间,但我想让 JFrame 的一部分播放视频流,例如 JPanel 或其他东西。我想知道是否还有其他方法可以让 JPanel 播放视频流。希望您能帮助我并感谢您的阅读。

下面是我使用 JFrame、VLCJ 的代码。

SearchIcon2.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
String number = CCTV.getSelectedItem().toString();
if (number.equals("no. 1")) {
EmbeddedMediaPlayerComponent component = new EmbeddedMediaPlayerComponent();

final JFrame fs = new JFrame("no. 1");
fs.setContentPane(component);
fs.setBounds(100, 100, 850, 518);
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 it is my ip.
}
}
});

最佳答案

您将组件添加为内容 Pane ,因此它涵盖了所有JFrame。

您可以使用 JFrame 的布局管理器(默认为 BorderLayout)或添加 JPanel 作为内容 Pane 并使用布局管理器添加其他组件。

// JFrame layout example
final JFrame fs = new JFrame("no. 1");
fs.add(component, BorderLayout.CENTER);
fs.add(newPanel, BorderLayout.SOUTH);



// JPanel example
JPanel panel = new JPanel();
LayoutManager mgr = ...
panel.setLayout(mgr);
panel.add(component); // maybe layout manager specific parameters also
fs.setContentPane(panel);

关于java - 还有其他方法可以在java面板上输出网络视频流吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57146211/

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