我正在尝试在QML中使用RGBA视频实现alpha混合效果。
现在的问题是,QtMultimedia提供的Video Item实际上在QtQuick场景中打开了一个覆盖窗口,因此我认为不可能使用Video元素与其他QML元素进行alpha混合(我希望我是错的,但我找不到解决方案)。
因此,另一种方法是在继承自QQuickItem的类中,在updatePaintNode方法中自己渲染视频。
有人见过类似的情况吗?如果QtMultimedia的开发人员都无法实现,那么这是否可能?
我可以在QML中更改MediaPlayer元素的背景,例如将其设置为透明或仅颜色吗?
到目前为止,我一直在考虑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
}
}
事先感谢您!