我正在尝试使用 RGBA 中的视频在 QML 中获得 alpha 混合效果。
现在的问题是 QtMultimedia 提供的 Video Item 实际上在 QtQuick 场景中打开了一个覆盖窗口,所以我认为不可能将其他 QML 元素与 Video 元素进行 alpha 混合(我当然希望我错了,但是我找不到解决方案)。
因此,另一种方法是在 updatePaintNode 方法中自己在继承自 QQuickItem 的类中渲染视频。
有没有人见过这样的事情?如果 QtMultimedia 背后的人无法实现它,是否有可能?
我是否可以更改 MediaPlayer 元素的背景,可能是透明的,或者只是 QML 中的一种颜色?
到目前为止,我一直在考虑 QAbstractVideoSurface 和 QVideoFrame,但我不知道如何将其渲染到 QSG 上,甚至不知道 GeometryNode 应该如何查找视频。
最好的解决方案是与其他 QML 元素进行 alpha 混合,例如:
Rectangle {
width: 1024
height: 768
color: "yellow"
focus: true
Video {
id: video
anchors.fill: parent
source: "alpha-video.mov"
autoPlay: true
}
}
提前致谢!