我正在尝试使用RGBA中的视频在QML中获得alpha混合效果.
现在的问题是QtMultimedia提供的视频项实际上在QtQuick场景中打开了一个重叠窗口,所以我认为不可能将其他QML元素与视频元素进行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
}
}
Run Code Online (Sandbox Code Playgroud)
提前致谢!