我的主窗口正在创建另一个显示在第二个屏幕上的窗口

ApplicationWindow {
    id: mainWindow

    property var customerUi

    Component.onCompleted: {
        customerUi = customerWindow.createObject()
        if (ScreenManager.screenCount() > 1)
            ScreenManager.setScreen(customerUi, 1)
    }
}

两个窗口都需要显示同一摄像机的视频(它实际上是来自 USB 适配器的实时馈送,但工作方式相同)
Camera {
    id: camera
    deviceId: "my_device"
}

VideoOutput {
    source: camera
}

它在一个窗口中工作正常,但第二个窗口从不显示视频。我猜是因为相机 handle 不能同时被两个界面抓取(或类似的东西)

我尝试只创建一个 Camera 和两个 VideoOutput 使用相同的源,但它也不起作用。

我尝试使用 ShaderEffect 复制 View ,但是
ShaderEffectSource: sourceItem and ShaderEffectSource must both be children of the same window

如何同时在两个窗口上显示视频?

编辑 :

显然在 Qt 5.3 中使用 ShaderEffectSource 是可能的
https://bugreports.qt.io/browse/QTBUG-43117

但我需要让它与 Qt 5.5.1 一起工作

编辑 2:

使用 ShaderEffectSource 在同一窗口中复制视频效果很好,问题只是将它放在另一个窗口中。

最佳答案

这是我为解决问题所做的工作:

我创建了第三个 Window 宽度足以覆盖两个屏幕,并使用 ShaderEffectSource 复制窗口。

这只有效,因为我的两个 Windows 在每个屏幕上都是全屏的

不过,我仍在寻找问题的实际解决方案。

关于qt - 同时在两个窗口中显示相机,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41954118/

10-14 18:38
查看更多