1

我花了一些时间研究是否可以在 Java 应用程序中绘制 VLCJ 电影。我发现了一些相互矛盾的建议,有些人说这是不可能的,有些参考文章已经转移到 oracle.com。

有人可以澄清是否可以绘制 java2d 图形,例如也具有透明背景的矩形/线条,以便在屏幕上显示形状时可以查看下面的视频流?

如果 vlcj 无法做到这一点,那么对于 linux 和 windows 兼容的媒体播放器,允许对正在播放的视频流进行注释的好选择是什么?请注意,我不必局限于 java,但我可以从为多个平台开发的绘图例程中重复使用的东西将是理想的。

4

1 回答 1

0

是的,你可以做到。对于普通的硬件渲染视频播放器,您至少需要有 Java 6u10(最好是 7)并通过在 VLC 画布上覆盖一个透明的 JWindow 来实现这一点(向画布添加事件以检查更新并不难)位置/大小,然后相应地移动覆盖的窗口。)

不涉及使用覆盖窗口的另一种方法是使用 a DirectMediaPlayer,您可以在其中直接访问帧缓冲区(因此可以对像素做您喜欢的事情,包括将它们包装为围绕 3D 对象的纹理等等。)所以使用这种方法,您可以简单地将您想要的内容绘制到帧缓冲区上,然后以您选择的方式将其渲染到屏幕上。这是最灵活的方法,但也有不利的一面,即如果您对实施不十分小心,您将失去所有 GPU 加速并最终削弱 CPU,尤其是对于高清视频。

如果一个简单的叠加层可以解决问题,我会先尝试,DirectMediaPlayer如果必须的话就求助于。

于 2013-01-08T17:07:58.973 回答