vlcj播放视频时遇到问题

问题描述 投票:1回答:1

作为大学项目的一部分,我必须能够在我的Java应用程序中播放视频。

我编写了以下代码:

EmbeddedMediaPlayerComponent component = new EmbeddedMediaPlayerComponent();

JFrame f = new JFrame ();

f.setContentPane(component);

f.setBounds(new Rectangle (200,200,800,600));

f.addWindowListener(new WindowAdapter() {

    public void windowClosing (WindowEvent e) {

    component.release();

    System.exit(0);

    }

});

f.setVisible(true);

component.mediaPlayer().media().play("video");

一切都编译成功,当我运行该项目时,视频窗口打开,我可以听到视频的声音,但没有图像显示。谁能帮我解决这个问题?

vlcj
1个回答
0
投票

EmbeddedMediaPlayerComponent需要AWT Canvas嵌入视频。

在macOS上运行时,没有重量级的AWT,因此普通的嵌入式媒体播放器组件将无法工作。

您需要使用某种形式的“直接渲染”,在其中将视频自己绘制为某种轻量级的组件。 vlcj通过CallbackMediaPlayerComponent

提供了此实现

为了使基础工作正常,您只需替换代码即可:

EmbeddedMediaPlayerComponent component = new EmbeddedMediaPlayerComponent();

使用:

CallbackMediaPlayerComponent component = new CallbackMediaPlayerComponent();

这将为您提供合理的默认行为,如果需要,您可以自定义CallbackMediaPlayerComponent

这种方法的性能将不如嵌入式组件,但是对于大多数用例来说,已经足够好了。

© www.soinside.com 2019 - 2024. All rights reserved.