Класс QVCCamera
Класс QVCCamera предоставляет интерфейс для системных камер. Подробнее…
Подключение: | #include <QVCCamera> |
Свойства
- captureMode : QCamera::CaptureModes
- lockStatus : const QCamera::LockStatus
- state : const QCamera::State
- status : const QCamera::Status
Публичные функции
QVCCamera(QObject *parent = Q_NULLPTR) | |
QVCCamera(const QByteArray &deviceName, QObject *parent = Q_NULLPTR) | |
QVCCamera(const QVCCameraInfo &cameraInfo, QObject *parent = Q_NULLPTR) | |
QVCCamera(QCamera::Position position, QObject *parent = Q_NULLPTR) | |
~QVCCamera() | |
QMultimedia::AvailabilityStatus | availability() const |
QCamera::CaptureModes | captureMode() const |
QCamera::Error | error() const |
QString | errorString() const |
QVCCameraExposure * | exposure() const |
QVCCameraFocus * | focus() const |
QCameraImageProcessing * | imageProcessing() const |
bool | isCaptureModeSupported(QCamera::CaptureModes mode) const |
QCamera::LockStatus | lockStatus() const |
QCamera::LockStatus | lockStatus(QCamera::LockType lockType) const |
QCamera::LockTypes | requestedLocks() const |
void | setViewfinder(QAbstractVideoSurface *surface) |
void | setViewfinderSettings(const QCameraViewfinderSettings &settings) |
QCamera::State | state() const |
QCamera::Status | status() const |
QCamera::LockTypes | supportedLocks() const |
QList<QCamera::FrameRateRange> | supportedViewfinderFrameRateRanges(const QCameraViewfinderSettings &settings = QCameraViewfinderSettings()) const |
QList<QVideoFrame::PixelFormat> | supportedViewfinderPixelFormats(const QCameraViewfinderSettings &settings = QCameraViewfinderSettings()) const |
QList<QSize> | supportedViewfinderResolutions(const QCameraViewfinderSettings &settings = QCameraViewfinderSettings()) const |
QList<QCameraViewfinderSettings> | supportedViewfinderSettings(const QCameraViewfinderSettings &settings = QCameraViewfinderSettings()) const |
QCameraViewfinderSettings | viewfinderSettings() const |
Публичные слоты
void | load() |
void | searchAndLock() |
void | searchAndLock(QCamera::LockTypes locks) |
void | setCaptureMode(QCamera::CaptureModes mode) |
void | start() |
void | stop() |
void | unload() |
void | unlock() |
void | unlock(QCamera::LockTypes locks) |
Сигналы
void | captureModeChanged(QCamera::CaptureModes mode) |
void | error(QCamera::Error value) |
void | lockFailed() |
void | lockStatusChanged(QCamera::LockStatus status, QCamera::LockChangeReason reason) |
void | lockStatusChanged(QCamera::LockType lock, QCamera::LockStatus status, QCamera::LockChangeReason reason) |
void | locked() |
void | stateChanged(QCamera::State state) |
void | statusChanged(QCamera::Status status) |
Подробное описание
Класс QVCCamera предоставляет интерфейс для системных камер.
Можно использовать QVCCameraInfo, чтобы получить список доступных камер и выбрать, какую из них использовать.
Описание свойств
captureMode : QCamera::CaptureModes
Тип мультимедиа (видео или фотография), на захват которого настроена камера.
Разрешено изменять режим захвата в любом состоянии камеры, но если камера в данный момент активна, изменение режима захвата, скорее всего, приведёт к изменению статуса камеры на QCamera::LoadedStatus, QCamera::LoadingStatus, а когда камера готова, то на QCamera::ActiveStatus.
Методы доступа:
QCamera::CaptureModes | captureMode() const |
void | setCaptureMode(QCamera::CaptureModes mode) |
Сигнал уведомления:
void | captureModeChanged(QCamera::CaptureModes mode) |
lockStatus : const QCamera::LockStatus
Свойство содержит статус всех запрошенных блокировок камеры.
Методы доступа:
QCamera::LockStatus | lockStatus() const |
QCamera::LockStatus | lockStatus(QCamera::LockType lockType) const |
Сигнал уведомления:
void | lockStatusChanged(QCamera::LockStatus status, QCamera::LockChangeReason reason) |
void | lockStatusChanged(QCamera::LockType lock, QCamera::LockStatus status, QCamera::LockChangeReason reason) |
state : const QCamera::State
Свойство содержит текущее состояние объекта камеры.
Методы доступа:
QCamera::State | state() const |
Сигнал уведомления:
void | stateChanged(QCamera::State state) |
status : const QCamera::Status
Свойство содержит текущий статус объекта камеры.
Методы доступа:
QCamera::Status | status() const |
Сигнал уведомления:
void | statusChanged(QCamera::Status status) |
Описание функций-членов
QVCCamera::QVCCamera(QObject parent = Q_NULLPTR)
Конструктор для класса QVCCamera с родительским элементом, указанном в параметре parent.
QVCCamera::QVCCamera(const QByteArray &deviceName, QObject parent = Q_NULLPTR)
Конструктор для класса QVCCamera из deviceName с родительским элементом, указанном в параметре parent.
Если камеры с таким deviceName не существует, объект камеры будет недействителен.
QVCCamera::QVCCamera(const QVCCameraInfo &cameraInfo, QObject parent = Q_NULLPTR)
Конструктор для класса QVCCamera из описания камеры cameraInfo с родительским элементом, указанном в параметре parent.
QVCCamera::QVCCamera(QCamera::Position position, QObject parent = Q_NULLPTR)
Конструктор для класса QVCCamera, который использует аппаратную камеру, расположенную в указанной position.
Например, на мобильном телефоне его можно использовать для простого выбора между фронтальной и задней камерами.
Если в указанной position нет доступной камеры или если position равно QVCCamera::UnspecifiedPosition, используется камера по умолчанию.
Эта функция была введена в Qt 5.3.
QVCCamera::~QVCCamera()
Уничтожает объект камеры.
QMultimedia::AvailabilityStatus QVCCamera::availability() const
Возвращает состояние доступности службы камеры.
[signal] void QVCCamera::captureModeChanged(QCamera::CaptureModes mode)
Сигнализирует о том, что режим захвата mode изменился.
Примечание. Сигнал уведомления для свойства captureMode.
QCamera::Error QVCCamera::error() const
Возвращает состояние ошибки объекта.
[signal] void QVCCamera::error(QCamera::Error value)
Сигнал испускается, когда состояние ошибки меняется на value.
Примечание. Сигнал error перегружен в этом классе. Чтобы подключиться к нему с помощью синтаксиса указателя на функцию, необходимо указать тип сигнала в статическом приведении, как показано в этом примере:
connect(vCCamera, static_cast<void(QVCCamera::*)(QCamera::Error)>(&QVCCamera::error),
[=](QCamera::Error value){ /* ... */ });
QString QVCCamera::errorString() const
Возвращает строку, описывающую состояние ошибки камеры.
QVCCameraExposure *QVCCamera::exposure() const
Возвращает объект управления экспозицией камеры.
QVCCameraFocus *QVCCamera::focus() const
Возвращает объект управления фокусом камеры.
QCameraImageProcessing *QVCCamera::imageProcessing() const
Возвращает объект управления обработкой изображения камеры.
bool QVCCamera::isCaptureModeSupported(QCamera::CaptureModes mode) const
Возвращает true, если поддерживается режим захвата mode.
[slot] void QVCCamera::load()
Открывает устройство камеры. Состояние камеры изменится на QCamera::LoadedStatus.
Нет необходимости явно загружать камеру, за исключением случаев, когда приложению необходимо прочитать поддерживаемые настройки камеры и изменить настройки по умолчанию в зависимости от возможностей камеры.
Во всех остальных случаях возможен запуск камеры непосредственно из незагруженного состояния.
[signal] void QVCCamera::lockFailed()
Сигнализирует о том, что не удалось заблокировать сигналы хотя бы одной запрошенной настройки камеры.
QCamera::LockStatus QVCCamera::lockStatus() const
Возвращает статус запрошенных блокировок настроек камеры.
Примечание. Функция возвращает значение свойства lockStatus.
QCamera::LockStatus QVCCamera::lockStatus(QCamera::LockType lockType) const
Возвращает статус блокировки для данного lockType.
Примечание. Функция возвращает значение свойства lockStatus.
[signal] void QVCCamera::lockStatusChanged(QCamera::LockStatus status, QCamera::LockChangeReason reason)
Сигнализирует о том, что общий status для всех запрошенных блокировок камер был изменен по указанной reason.
Примечание. Сигнал lockStatusChanged перегружен в этом классе. Чтобы подключиться к нему с помощью синтаксиса указателя на функцию, необходимо указать тип сигнала в статическом приведении, как показано в этом примере:
connect(vCCamera, static_cast<void(QVCCamera::*)(QCamera::LockStatus, QCamera::LockChangeReason)>(&QVCCamera::lockStatusChanged),
[=](QCamera::LockStatus status, QCamera::LockChangeReason reason){ /* ... */ });
Примечание. Сигнал уведомления для свойства lockStatus.
[signal] void QVCCamera::lockStatusChanged(QCamera::LockType lock, QCamera::LockStatus status, QCamera::LockChangeReason reason)
Сигнализирует о том, что lock status был изменён по указанной reason.
Примечание. Сигнал lockStatusChanged перегружен в этом классе. Чтобы подключиться к нему с помощью синтаксиса указателя на функцию, необходимо указать тип сигнала в статическом приведении, как показано в этом примере:
connect(vCCamera, static_cast<void(QVCCamera::*)(QCamera::LockType, QCamera::LockStatus, QCamera::LockChangeReason)>(&QVCCamera::lockStatusChanged),
[=](QCamera::LockType lock, QCamera::LockStatus status, QCamera::LockChangeReason reason){ /* ... */ });
Примечание. Сигнал уведомления для свойства lockStatus.
[signal] void QVCCamera::locked()
Сигнализирует, что все запрошенные настройки камеры заблокированы.
QCamera::LockTypes QVCCamera::requestedLocks() const
Возвращает запрошенные типы блокировок.
[slot] void QVCCamera::searchAndLock()
Блокирует все поддерживаемые настройки камеры.
[slot] void QVCCamera::searchAndLock(QCamera::LockTypes locks)
Блокирует настройки камеры с помощью запрошенных locks, включая фокусировку в режиме одиночной автофокусировки, экспозицию и баланс белого, если режимы экспозиции и баланса белого не ручные.
Настройки камеры обычно блокируются перед съёмкой одного или нескольких неподвижных изображений при нажатии кнопки спуска затвора наполовину.
Сигнал QVCCamera::locked() испускается, когда настройки камеры успешно заблокированы, в противном случае испускается QVCCamera::lockFailed().
QVCCamera также испускает lockStatusChanged(QCamera::LockType, QCamera::LockStatus) при отдельных изменениях статуса блокировки и сигнал lockStatusChanged(QCamera::LockStatus) об изменении составного статуса.
Блокировка выполняет две функции: она инициализирует расчёт автоматических параметров (фокусировка, правильная экспозиция и баланс белого) и позволяет сохранять некоторые или все эти параметры в течение нескольких кадров.
Если камера не поддерживает сохранение одного из параметров между снимками, соответствующее состояние блокировки изменится на QVCCamera::Unlocked.
Также допустимо повторно заблокировать уже заблокированные настройки, в зависимости от параметра блокировки это инициирует новый расчёт фокусировки, экспозиции или баланса белого.
void QVCCamera::setViewfinder(QAbstractVideoSurface *surface)
Устанавливает видео surface в качестве видоискателя камеры.
Если на камере уже установлен видоискатель, новая поверхность заменит его.
void QVCCamera::setViewfinderSettings(const QCameraViewfinderSettings &settings)
Устанавливает настройки settings видоискателя.
Если некоторые параметры не указаны или переданы нулевые настройки, камера выберет значения по умолчанию.
Если камера используется для съёмки видео или изображений, настройки видоискателя могут
игнорироваться, если они противоречат настройкам съёмки. Можно проверить текущие настройки
видоискателя, когда камера находится в состоянии QCamera::ActiveStatus
.
Изменение настроек видоискателя, когда камера находится в состоянии QCamera::ActiveState, может привести к перезапуску камеры.
Эта функция была введена в Qt 5.5.
См. также viewfinderSettings(), supportedViewfinderResolutions(), supportedViewfinderFrameRateRanges() и supportedViewfinderPixelFormats().
[slot] void QVCCamera::start()
Запускает камеру.
Состояние изменяется на QCamera::ActiveState, если камера запускается успешно, в противном случае испускается сигнал error().
Хотя состояние камеры изменяется на QCamera::ActiveState, запуск службы камеры может быть асинхронным с фактическим статусом, сообщаемым свойством QVCCamera::status.
[signal] void QVCCamera::stateChanged(QCamera::State state)
Сигнализирует об изменении state камеры.
Обычно изменение состояния осуществляется вызовами load(), unload(), start() и stop( ), но состояние также может измениться в результате ошибки камеры.
Примечание. Сигнал уведомления для свойства state.
[signal] void QVCCamera::statusChanged(QCamera::Status status)
Сигнализирует об изменении status камеры.
Примечание. Сигнал уведомления для свойства status.
[slot] void QVCCamera::stop()
Останавливает камеру. Состояние камеры изменяется с QCamera::ActiveState на QCamera::LoadedState.
QCamera::LockTypes QVCCamera::supportedLocks() const
Возвращает типы блокировок, поддерживаемые камерой.
QList<QCamera::FrameRateRange> QVCCamera::supportedViewfinderFrameRateRanges(const QCameraViewfinderSettings &settings = QCameraViewfinderSettings()) const
Возвращает список поддерживаемых диапазонов частоты кадров видоискателя.
Это удобная функция, которая извлекает уникальные диапазоны частоты кадров из поддерживаемых настроек.
Если переданы настройки settings видоискателя, не равные null, возвращаемый список сокращается до диапазонов частоты кадров, поддерживаемых с применением частичных settings.
Камера должна быть загружена перед вызовом этой функции, иначе возвращаемый список будет пуст.
Эта функция была введена в Qt 5.5.
См. также QCameraViewfinderSettings::minimumFrameRate(), QCameraViewfinderSettings::maximumFrameRate() и setViewfinderSettings().
QList<QVideoFrame::PixelFormat> QVCCamera::supportedViewfinderPixelFormats(const QCameraViewfinderSettings &settings = QCameraViewfinderSettings()) const
Возвращает список поддерживаемых форматов пикселей видоискателя.
Это удобная функция, которая извлекает уникальные форматы пикселей из поддерживаемых настроек.
Если переданы ненулевые настройки settings видоискателя, возвращаемый список сокращается до форматов пикселей, поддерживаемых с применением частичных settings.
Камера должна быть загружена перед вызовом этой функции, иначе возвращаемый список будет пуст.
Эта функция была введена в Qt 5.5.
См. также QCameraViewfinderSettings::pixelFormat() и setViewfinderSettings().
QList<QSize> QVCCamera::supportedViewfinderResolutions(const QCameraViewfinderSettings &settings = QCameraViewfinderSettings()) const
Возвращает список поддерживаемых разрешений видоискателя.
Это удобная функция, которая извлекает уникальные разрешения из поддерживаемых настроек.
Если переданы ненулевые настройки settings видоискателя, возвращаемый список сокращается до разрешений, поддерживаемых с применением частичных settings.
Камера должна быть загружена перед вызовом этой функции, иначе возвращаемый список будет пуст.
Эта функция была введена в Qt 5.5.
См. также QCameraViewfinderSettings::resolution() и setViewfinderSettings().
QList<QCameraViewfinderSettings> QVCCamera::supportedViewfinderSettings(const QCameraViewfinderSettings &settings = QCameraViewfinderSettings()) const
Возвращает список поддерживаемых настроек видоискателя.
Список упорядочен по предпочтениям; предпочтительные настройки идут первыми.
Необязательный аргумент settings можно использовать для удобной фильтрации результатов. Если settings ненулевые, возвращаемый список сокращается до настроек, соответствующих заданным частичным settings.
Камера должна быть загружена перед вызовом этой функции, иначе возвращаемый список будет пуст.
Эта функция была введена в Qt 5.5.
См. также setViewfinderSettings(), supportedViewfinderResolutions(), supportedViewfinderFrameRateRanges() и supportedViewfinderPixelFormats().
[slot] void QVCCamera::unload()
Закрывает устройство камеры и освобождает связанные ресурсы. Состояние камеры изменится на QCamera::UnloadedStatus.
[slot] void QVCCamera::unlock()
Разблокирует все запрошенные блокировки камеры.
[slot] void QVCCamera::unlock(QCamera::LockTypes locks)
Разблокирует настройки камеры, указанные с помощью locks, или отменяет текущую блокировку, если она активна.
QCameraViewfinderSettings QVCCamera::viewfinderSettings() const
Возвращает настройки видоискателя, используемые камерой.
Настройки могут измениться при запуске камеры, например, если настройки видоискателя не определены или установлены неподдерживаемые значения.
Если настройки видоискателя не поддерживаются камерой, она всегда возвращает объект QCameraViewfinderSettings, равный null.
Эта функция была введена в Qt 5.5.
См. также setViewfinderSettings().