在 QML 中处理许多顺序 "scenes"
Handling many sequential "scenes" in QML
我正在开发一个 QT 项目,该项目可以有效地概括为一长串 "scenes" 按顺序依次播放。每个场景可以由任意数量的视频和图像组成,而且有一大堆。
我认为最好使用 Loader 元素根据需要加载每个场景,而不是创建所有内容并通过设置不透明度在它们之间切换。 (让我知道这是否愚蠢。我是 QML 的新手。)
它似乎有效,但我在场景之间看到了可见的闪光。假设这是加载加载程序引起的延迟,我尝试使用两个加载程序。我会在一个不可见的加载器中加载下一个场景,然后交换 onLoaded() 回调。仍然闪烁。
QML高手有没有ideas/suggestions?
您应该将下一个视频的 source
属性 更改为 url,不要有多个 Video
元素。
这是我最后做的。好像还不错。
我预先定义了所有视频元素,但没有来源属性。当我想显示下一个视频时,我将它放在当前播放的视频之上,并设置它的来源。然后我启动一个计时器,通过将其源设置为“”,在 100 毫秒后卸载上一个视频。这创建了无缝播放,因为在下一个视频开始之前,第一个视频的最后一帧是可见的。
我正在开发一个 QT 项目,该项目可以有效地概括为一长串 "scenes" 按顺序依次播放。每个场景可以由任意数量的视频和图像组成,而且有一大堆。
我认为最好使用 Loader 元素根据需要加载每个场景,而不是创建所有内容并通过设置不透明度在它们之间切换。 (让我知道这是否愚蠢。我是 QML 的新手。)
它似乎有效,但我在场景之间看到了可见的闪光。假设这是加载加载程序引起的延迟,我尝试使用两个加载程序。我会在一个不可见的加载器中加载下一个场景,然后交换 onLoaded() 回调。仍然闪烁。
QML高手有没有ideas/suggestions?
您应该将下一个视频的 source
属性 更改为 url,不要有多个 Video
元素。
这是我最后做的。好像还不错。
我预先定义了所有视频元素,但没有来源属性。当我想显示下一个视频时,我将它放在当前播放的视频之上,并设置它的来源。然后我启动一个计时器,通过将其源设置为“”,在 100 毫秒后卸载上一个视频。这创建了无缝播放,因为在下一个视频开始之前,第一个视频的最后一帧是可见的。