在使用 QMediaCaptureSession 进行摄像头捕获时,可以通过以下方法判断摄像头是否已经被打开:
- 使用
isCameraAvailable()
方法检查特定的摄像头是否可用。该方法接受一个参数,用于指定要检查的摄像头索引。
QCameraInfo cameraInfo = QCameraInfo::defaultCamera();
if (cameraInfo.isCameraAvailable()) {
// 摄像头可用
} else {
// 摄像头不可用
}
- 在捕获过程中,可以使用
statusChanged(QMediaCaptureSession::Status)
信号来监测捕获会话状态的变化。当状态为ActiveStatus
时,表示摄像头已经打开。
QMediaCaptureSession captureSession;
...
connect(&captureSession, &QMediaCaptureSession::statusChanged, [&](QMediaCaptureSession::Status status){
if (status == QMediaCaptureSession::ActiveStatus) {
// 摄像头已经打开
}
});
这些方法可以帮助您判断摄像头是否已经被成功打开并准备好进行捕获操作。
内容由零声教学AI助手提供,问题来源于学员提问