我的主窗口正在创建另一个显示在第二个屏幕上的窗口
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/