python Qml Qt多媒体视频+ Qml阴影效果不兼容

eeq64g8w  于 2023-01-19  发布在  Python
关注(0)|答案(2)|浏览(113)

我在qml视频上应用shaderEffect时遇到了一个问题。当我将shaderEffect应用到包含视频的矩形时,我观察到shaderEffect中视频表示上的口吃口吃效果。此外,我的程序在一段时间后关闭。2有没有方法可以将着色器效果应用到QtMultimedia视频上而不会导致口吃?3或者我应该使用另一个视频类来达到这个目的?如果能有一个包含多个视频的矩形的解决方案就好了。
我查阅了stackoverflow和文档,到目前为止没有找到答案。

xdnvmnnf

xdnvmnnf1#

只需要在你的阴影效果上使用另一个阴影效果,那就是QT。

2o7dmzc5

2o7dmzc52#

我看不出在使用下面的代码时有任何口吃。即使我没有使用python,这也不会有什么不同。如果你想得到更好的答案,你需要提供代码来理解你在做什么。

import QtQuick
import QtMultimedia

Window {
    id: root
    width: 640
    height: 480
    visible: true
    title: qsTr("Hello Shader")

    Item {
        anchors.fill: parent
        layer.enabled: true
        layer.effect: ShaderEffect {
           fragmentShader: "gray.frag.qsb"
        }

        Grid {
            rows: 2; columns: 2

            Repeater {
                id: repeater
                model: ["qrc:/video0.mp4", "qrc:/video1.mp4", "qrc:/video2.mp4", "qrc:/video3.mp4"]

                Video {
                    id: video
                    width: 320; height: 240
                    source: modelData
                    loops: MediaPlayer.Infinite
                }
            }
        }
    }

    Component.onCompleted: {
        for (let i = 0; i < repeater.count; ++i)
            repeater.itemAt(i).play()
    }
}

作为参比品**,不含**ShaderEffect

应用了ShaderEffect。gif中的“口吃”源于我太懒于创建一个完美的循环视频。所以它只是从头开始,所以很快就口吃了。

相关问题