gpt4 book ai didi

java - JFrame 没有完全关闭

转载 作者:行者123 更新时间:2023-11-30 02:34:03 24 4
gpt4 key购买 nike

我正在使用 VLCJ 绑定(bind)来创建视频播放器。

我的代码:

public class MyVideoPlayer {

private EmbeddedMediaPlayerComponent mediaPlayerComponent;
static String VLCLIBPATH = "C:\\Program Files\\VideoLAN\\VLC";

public MyVideoPlayer(String source) {
NativeLibrary.addSearchPath(RuntimeUtil.getLibVlcLibraryName(), VLCLIBPATH);
Native.loadLibrary(RuntimeUtil.getLibVlcLibraryName(), LibVlc.class);
JFrame frame = new JFrame("VLC Player");
mediaPlayerComponent = new EmbeddedMediaPlayerComponent();
frame.setExtendedState(Frame.MAXIMIZED_BOTH);
frame.setContentPane(mediaPlayerComponent);
frame.setSize(1366, 768);
frame.setVisible(true);
mediaPlayerComponent.getMediaPlayer().playMedia(source);
frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
}
}

我通过 new VideoPlayer(source) 从另一个帧调用此视频播放器。当我使用 JFrame.DISPOSE_ON_CLOSE 时,框架关闭,但声音仍然不会消失..

如何完全关闭视频播放框?

最佳答案

  1. 将关闭操作声明为 JFrame.DO_NOTHING_ON_CLOSE
  2. 添加一个WindowListener,如下所示(根据需要适应您的代码):

    frame.addWindowListener(new WindowAdapter() {
    @Override
    public void windowClosing(WindowEvent e) {
    mediaPlayerComponent.getMediaPlayer().stop(); // Very important!
    frame.dispose();
    }
    });

可能需要将 framemediaPlayerComponent 声明为 final 才能从内部类中访问它们。

关于java - JFrame 没有完全关闭,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43556778/

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