VLCJ,启用VideoAdjustments时JVM崩溃

时间:2019-06-07 10:58:14

标签: java vlcj

我正在尝试 vlcj 库,但遇到视频调整问题。详细来说, JVM会在视频结束或停止而没有先禁用视频调整的情况下崩溃

如文档中所述,我在视频开始播放后启用视频调整。之后,我可以毫无问题地更改饱和度,色相和其他参数。

我尝试在收到STOPPED或FINISHED事件后立即禁用视频调整,但这不能解决问题。

我使用的是VLCj 4.1.0,启用视频调整的代码如下。

this.mediaPlayerComponent.mediaPlayer().video().setAdjustVideo(true);

[UPDATE 1]

以下代码重现了该问题。视频结束时,发生崩溃。 请注意,如果将最后一行注释掉,则不会发生崩溃。

import javax.swing.JFrame;

import uk.co.caprica.vlcj.player.component.EmbeddedMediaPlayerComponent;

public class SelfContainedMediaPlayer {

    private final JFrame frame;
    private static SelfContainedMediaPlayer selfContainedMediaPlayer;
    private final EmbeddedMediaPlayerComponent mediaPlayerComponent;

    public static void main(final String[] args) {

        selfContainedMediaPlayer = new SelfContainedMediaPlayer();
    }

    public SelfContainedMediaPlayer(){
        frame = new JFrame("My First Media Player");
        frame.setBounds(100, 100, 1920, 1080);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        mediaPlayerComponent = new EmbeddedMediaPlayerComponent();
        frame.setContentPane(mediaPlayerComponent);
        frame.setVisible(true);

        mediaPlayerComponent.mediaPlayer().media().play("path to video");
        mediaPlayerComponent.mediaPlayer().video().setAdjustVideo(true);
    }
}

关于我的环境的更多细节。

  • 我正在使用Windows 10
  • vlcj版本4.1.0
  • 已安装的VLC版本是3.0.6 64位
  • java版本“ 11.0.1”

有什么建议吗? 谢谢

[更新2]:

我发现了问题。
正如我在下面的评论之一中所预期的那样,我正在测试发现here vlcj-player 应用程序,但我发现该应用程序不存在问题。
经过一番挖掘,我发现包含视频的JFrame需要一个TransferHandler。 因此,仅通过将TransferHandler实例传递到如下所示的框架即可解决该问题。

frame.setTransferHandler(new CustomTransferHandler());

CustomTransferHandler是扩展TransferHandler的类。

不幸的是,我仍然不明白为什么这会导致JVM崩溃。

0 个答案:

没有答案