2017-04-03 298 views
0

我想顯示兩個QLabel小部件上的一個攝像頭輸出。但是我無法這樣做。我遇到以下錯誤。使用QCamera與多個攝像頭

Graph failed to connect filters -2147024809 

但是我可以在一個屏幕上看到它,而不是在另一個屏幕上。如果這是一種錯誤的方法,或者根本不可能?

cM = new QCamera(this); 
cM2 = new QCamera(this); 
cV = new QCameraViewfinder(this); 
cV2 = new QCameraViewfinder(this); 
mMenu = new QMenu("Options",this); 
cA = new QAction("one camera", this); 
cA2 = new QAction("both camera", this); 
mMenu->addActions({cA, cA2}); 
ui->pushButton->setMenu(mMenu); 
cM->setViewfinder(cV); 
cM2->setViewfinder(cV2); 
cBox1 = new QVBoxLayout(); 
cBox2 = new QVBoxLayout(); 
cBox1->addWidget(cV); 
cBox2->addWidget(cV2); 
ui->label->setLayout(cBox1); 
ui->label_2->setLayout(cBox2); 
connect(cA, &QAction::triggered, [&](){ 


cM->start(); 

cM2->start(); 

回答

0

您需要用cameraInfo構造yoru相機,否則它不會綁定到真實的硬件。 https://doc.qt.io/qt-5/qcamera.html

QList<QCameraInfo> cameras = QCameraInfo::availableCameras(); 
foreach (const QCameraInfo &cameraInfo, cameras) 
{ 
    if (cameraInfo.deviceName() == "mycamera") 
     camera = new QCamera(cameraInfo, this); 
} 
+0

我試過你的解決方案,但它不起作用。其實我有一個設備連接到我的系統,它支持兩個攝像頭,基本上它有兩個端口。這意味着我只能創建一個QCamera的實例,而不是兩個。如果我想使用另一臺攝像機,我總是必須切換頻道。 – sulabh