2014-02-08 40 views
0

我的代碼如下。我對狀態進行了多次檢查,這在qDebug()的註釋中顯示。我真的不知道這是失敗的。QCamera就緒,QImageCapture不同意

QCamera *camera = new QCamera(); 

camera->setCaptureMode(QCamera::CaptureStillImage); 

camera->load(); 
camera->start(); 
camera->searchAndLock(); 

QCameraImageCapture *imageCapture = new QCameraImageCapture(camera); 
imageCapture->setCaptureDestination(QCameraImageCapture::CaptureToFile); 

imageCapture->capture("~/test.jpg"); 

qDebug() << camera->state();    // QCamera::ActiveStatus 
qDebug() << camera->status();    // QCamera::LoadedStatus 
qDebug() << camera->isAvailable();  // true 
qDebug() << camera->errorString();  // "" 
qDebug() << imageCapture->isAvailable(); // true 
qDebug() << imageCapture->errorString(); // "Camera not ready" 

camera->unlock(); 
camera->stop(); 
+0

捕獲的目標路徑可能是錯誤的。我不確定它會如你所期望的那樣擴大。嘗試使用現有的常規路徑進行調試 – jbh

+0

是的,我確實嘗試過。徒勞無功。 – Jacob

回答

1

試試這個:

QCamera *camera; 

QList<QByteArray> devices = QCamera::availableDevices(); 
if(devices.length()){ 
    camera = new QCamera(devices.at(0)); 
}else{ 
    qDebug() << "No camera found!"; 
} 

式Qcamera必須使用有效的設備進行初始化。