对不起,我之前给出的代码是基于旧版本的Qt(如Qt 5)编写的。在新版本的Qt中,已经移除了QCamera类和相关功能。取而代之的是使用QCameraInfo和QCameraViewfinderSettings来获取摄像头信息。
以下是一个示例代码,演示如何获取YUV像素格式下支持的分辨率列表:
#include <QCameraInfo>
#include <QDebug>
int main() {
QList<QCameraInfo> cameras = QCameraInfo::availableCameras();
foreach (const QCameraInfo& cameraInfo, cameras) {
qDebug() << "Device Name:" << cameraInfo.deviceName();
qDebug() << "Description:" << cameraInfo.description();
QCameraViewfinderSettings viewfinderSettings;
viewfinderSettings.setPixelFormat(QVideoFrame::Format_YUV420P);
QScopedPointer<QCamera> camera(new QCamera(cameraInfo));
camera->setViewfinderSettings(viewfinderSettings);
camera->start();
QList<QSize> resolutions = camera->supportedViewfinderResolutions();
qDebug() << "Supported Resolutions for YUV:";
foreach (const QSize& resolution, resolutions) {
qDebug() << resolution;
}
camera->stop();
}
return 0;
}
这段代码会列出所有可用摄像头的设备名称、描述以及在YUV像素格式下支持的分辨率列表。
请确保已正确包含必要的头文件,并链接相应的库。如果仍然遇到问题,请检查您的Qt环境是否正确配置并且正在使用Qt 6版本。
内容由零声教学AI助手提供,问题来源于学员提问