Документация
ОС Аврора 5.0.1

Класс QVCCamera

Класс QVCCamera предоставляет интерфейс для системных камер. Подробнее…

Подключение: #include <QVCCamera>

Свойства

Публичные функции

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().

Мы используем cookies для персонализации сайта и его более удобного использования. Вы можете запретить cookies в настройках браузера.

Пожалуйста ознакомьтесь с политикой использования cookies.