我在qml视频上应用shaderEffect时遇到了一个问题。当我将shaderEffect应用到包含视频的矩形时,我观察到shaderEffect中视频表示上的口吃口吃效果。此外,我的程序在一段时间后关闭。2有没有方法可以将着色器效果应用到QtMultimedia视频上而不会导致口吃?3或者我应该使用另一个视频类来达到这个目的?如果能有一个包含多个视频的矩形的解决方案就好了。我查阅了stackoverflow和文档,到目前为止没有找到答案。
xdnvmnnf1#
只需要在你的阴影效果上使用另一个阴影效果,那就是QT。
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
应用了ShaderEffect。gif中的“口吃”源于我太懒于创建一个完美的循环视频。所以它只是从头开始,所以很快就口吃了。
2条答案
按热度按时间xdnvmnnf1#
只需要在你的阴影效果上使用另一个阴影效果,那就是QT。
2o7dmzc52#
我看不出在使用下面的代码时有任何口吃。即使我没有使用python,这也不会有什么不同。如果你想得到更好的答案,你需要提供代码来理解你在做什么。
作为参比品**,不含**
ShaderEffect
。应用了
ShaderEffect
。gif中的“口吃”源于我太懒于创建一个完美的循环视频。所以它只是从头开始,所以很快就口吃了。