释放后销毁mediaPlayerComponent(true)

时间:2015-02-23 23:34:22

标签: java vlcj

使用vlcj和java: 在A类中创建B类(EmbeddedMediaPlayerComponent类)的实例:

mediaPlayerComponent = new EmbeddedMediaPlayerComponent();

通过B级打开:new JFrameebedded mediaPlayer

我可以用以下内容销毁这个'JFrame'。

frame.addWindowListener(new WindowAdapter() {
    @Override
    public void windowClosing(WindowEvent windowEvent) {
    stillAlive = false;  
    release(true);
    frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
}

public boolean stillAlive() {
    return stillAlive;
}

但是如果我尝试重用mediaPlayerComponent

,A类中的mediaPlayerComponent仍然存在并引发丑陋的错误

所以,如果我想播放一个新文件,我会这样做。 检查它是否是第一次打开实例和 检查我是否通过release(true)进行了stillAlive = false。 否则重用mediaPlayerComponent。

if (mediaPlayerComponent == null || (! mediaPlayerComponent.stillAlive())) { // keine facory
            mediaPlayerComponent = new EmbeddedMediaPlayerComponent();
            mediaPlayerComponent.getMediaPlayer().prepareMedia(marked.getPath());
            mediaPlayerComponent.getMediaPlayer().play();

        } else {
            mediaPlayerComponent.getMediaPlayer().prepareMedia(marked.getPath());
            mediaPlayerComponent.getMediaPlayer().play();

        }

有更好的方法吗?就像告诉A类设置mediaPlayerComponent = null一样。 它以某种方式接缝是一个糟糕的编码阶梯来携带这个布尔值。

0 个答案:

没有答案