gpt4 book ai didi

具有透明背景的 Java VLCJ Canvas 和绘图

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:37:41 25 4
gpt4 key购买 nike

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

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

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

最佳答案

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

另一种不涉及使用覆盖窗口的方法是使用 DirectMediaPlayer,您可以在其中直接访问帧缓冲区(因此可以对像素执行您喜欢的操作,包括包装它们作为 3D 对象周围的纹理等等。)因此,使用这种方法,您可以简单地将您想要的内容绘制到帧缓冲区上,然后再以您选择的方式将其渲染到屏幕上。这是最灵活的方法,但也有缺点,如果您在实现时不够小心,就会失去所有 GPU 加速并最终导致 CPU 瘫痪,尤其是高清视频。

如果一个简单的叠加层就可以解决问题,我会先尝试一下,然后在必要时求助于 DirectMediaPlayer

关于具有透明背景的 Java VLCJ Canvas 和绘图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14144645/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com