VlcJ Canvas在上面

时间:2016-01-07 08:48:11

标签: java swing awt vlcj

我正在使用vlcJ库在我的程序中播放来自另一个VLC进程(OutOfProcess播放器)的视频。播放视频的vlcJ Canvas嵌入Component中的JTabbedPane。当玩家初始化时,视频画布会在每个其他控件的顶部显示出来。

我读到了heavy-/lightweight component,所以我知道,JRE 1.8在由轻量级组件中嵌入的另一个进程绘制时,仍然无法正确处理重量级组件。

  

嵌入式重量级组件必须属于该进程   创建了框架或小程序。重量级组件必须有一个   应用程序(或applet)主进程中的有效对等。

所以我的问题是如何解决这个问题,以便Canvas不会出现在前面" unasked"?

vlcj canvas overlapping 标签"多媒体"托管视频画布。尽管另一个标签是打开的,但画布仍保留在所有内容之上。当主持人选项卡"多媒体"打开一次,视频画布正确行为并保持在其标签中。

1 个答案:

答案 0 :(得分:0)

在@MadProgrammer和@caprica的帮助下,我找到了一个解决方法:由于我使用的是带有vlcJ-pro的OutOfProcess播放器,我无法使用"直接& #34; aproach,因为播放器和画布不是同一个过程。

隐藏和显示视频画布也没有选项,因为绘制视频图像的组件必须始终可见(否则会发生严重异常)。

所以最后我将视频画布包裹在JPanel CardLayout中,然后在空白窗格和视频画布之间切换。每次打开带有媒体播放器的选项卡时,视频画布都会变为可见,否则为空窗格。  这种解决方法似乎工作正常。