Spec-Zone.ru › Qt 5.6

Тип QML камеры

Доступ к кадрам видоискателя, а также к съемке фотографий и видео. Подробнее...

Заявление об импорте: import QtMultimedia 5.6
Наследуется от:

QtObject

  • Список всех членов, включая унаследованные члены

Свойства

  • availability : перечисление
  • cameraState : перечисление
  • cameraStatus : перечисление
  • captureMode : перечисление
  • deviceId : строка
  • digitalZoom : вещественное число
  • displayName : строка
  • errorCode : перечисление
  • errorString : строка
  • lockStatus : перечисление
  • maximumDigitalZoom : вещественное число
  • maximumOpticalZoom : вещественное число
  • mediaObject : вариант
  • metaData
    • metaData.cameraManufacturer : вариант
    • metaData.cameraModel : вариант
    • metaData.event : вариант
    • metaData.subject : вариант
    • metaData.orientation : вариант
    • metaData.dateTimeOriginal : вариант
    • metaData.gpsLatitude : вариант
    • metaData.gpsLongitude : вариант
    • metaData.gpsAltitude : вариант
    • metaData.gpsTimestamp : вариант
    • metaData.gpsTrack : вариант
    • metaData.gpsSpeed : вариант
    • metaData.gpsImgDirection : вариант
    • metaData.gpsProcessingMethod : вариант
  • opticalZoom : вещественное число
  • orientation : целое число
  • position : перечисление
  • viewfinder
    • viewfinder.resolution : размер
    • viewfinder.minimumFrameRate : вещественное число
    • viewfinder.maximumFrameRate : вещественное число

Сигналы

  • cameraStateChanged(state)
  • digitalZoomChanged(zoom)
  • error(errorCode, errorString)
  • lockStatusChanged()
  • manualWhiteBalanceChanged(qreal)
  • maximumDigitalZoomChanged(zoom)
  • maximumOpticalZoomChanged(zoom)
  • opticalZoomChanged(zoom)
  • whiteBalanceModeChanged(Camera::WhiteBalanceMode)

Методы

  • searchAndLock()
  • start()
  • stop()
  • list<object> supportedViewfinderFrameRateRanges(size resolution)
  • list<size> supportedViewfinderResolutions(real minimumFrameRate, real maximumFrameRate)
  • unlock()

Подробное описание

Вы можете использовать Camera для захвата изображений и видео с камеры, а также для изменения настроек захвата и обработки, которые применяются к изображениям. Для отображения видоискателя вы можете использовать VideoOutput с камерой в качестве источника.

Item {
    width: 640
    height: 360

    Camera {
        id: camera

        imageProcessing.whiteBalanceMode: CameraImageProcessing.WhiteBalanceFlash

        exposure {
            exposureCompensation: -1.0
            exposureMode: Camera.ExposurePortrait
        }

        flash.mode: Camera.FlashRedEyeReduction

        imageCapture {
            onImageCaptured: {
                photoPreview.source = preview  // Show the preview in an Image
            }
        }
    }

    VideoOutput {
        source: camera
        anchors.fill: parent
        focus : visible // to receive focus and capture key events when visible
    }

    Image {
        id: photoPreview
    }
}

Если доступно несколько камер, вы можете выбрать нужную, установив свойство deviceId на значение из QtMultimedia.availableCameras. На мобильном устройстве вы можете удобно переключаться между передней и задней камерами, установив свойство position.

Различные настройки и функциональные возможности стека камеры распределены по нескольким дочерним свойствам камеры.

Свойство Описание
imageCapture Методы и свойства для захвата неподвижных изображений.
videoRecording Методы и свойства для захвата видео.
exposure Методы и свойства для регулировки экспозиции (диафрагма, выдержка и т. д.).
focus Методы и свойства для регулировки фокусировки и предоставления отзывов о прогрессе автофокусировки.
flash Методы и свойства для управления вспышкой камеры.
imageProcessing Методы и свойства для настройки параметров обработки изображений камеры.

Базовое управление состоянием камеры, сообщение об ошибках и простые свойства зума доступны в самой камере. Для интеграции с кодом C++, свойство mediaObject позволяет вам получить доступ к стандартным средствам управления камерой Qt Multimedia.

Применение многих настроек камеры может занять некоторое время и может быть ограничено определенными поддерживаемыми значениями в зависимости от оборудования. Некоторые настройки камеры можно установить вручную или автоматически. Эти свойства содержат текущее установленное значение. Например, при включенной автофокусировке зоны фокусировки отображаются в свойстве focus.

Для дополнительной информации также ознакомьтесь с обзором камеры.

Документация по свойствам

availability : перечисление

Это свойство содержит состояние доступности камеры.

Состояния доступности могут быть следующими:

Значение Описание
Доступно Камера доступна для использования
Занято В данный момент камера занята, так как используется другим процессом.
Недоступно Камера недоступна для использования (возможно, нет оборудования камеры)
ResourceMissing Камера недоступна для использования из-за отсутствия ресурсов. Возможно, позже удастся попробовать снова.

cameraState : перечисление

Это свойство содержит текущее состояние объекта камеры, которое может быть одним из следующих:

Значение Описание
UnloadedState Начальное состояние камеры, когда камера не загружена. Возможности камеры (за исключением поддерживаемых режимов захвата) неизвестны. Это состояние экономит наибольшее количество энергии, но занимает самое длительное время, чтобы подготовиться к захвату.

Хотя поддерживаемые настройки в этом состоянии неизвестны, вы все равно можете установить настройки захвата камеры, такие как кодек, разрешение или частота кадров.

LoadedState Камера загружена и готова к настройке.

В состоянии ожидания (Idle) можно запросить возможности камеры, установить разрешение захвата, кодеки и т. д.

В состоянии загрузки (loaded) видоискатель не активен.

ActiveState В активном состоянии кадры видоискателя доступны, и камера готова к захвату.

По умолчанию состояние камеры — ActiveState.

cameraStatus : перечисление

Это свойство содержит текущий статус объекта камеры, который может быть одним из следующих:

Значение Описание
ActiveStatus Камера запущена и может производить данные, видоискатель отображает кадры видео.

В зависимости от бэкенда, изменение настроек камеры, таких как режим захвата, кодеки или разрешение в состоянии ActiveState может привести к изменению статуса на LoadedStatus и StartingStatus во время применения настроек, и обратно на ActiveStatus, когда камера готова.

StartingStatus Камера запускается в результате перехода состояния в Camera.ActiveState. Сервис камеры еще не готов к захвату.
StoppingStatus Камера останавливается в результате перехода состояния от Camera.ActiveState к Camera.LoadedState или Camera.UnloadedState.
StandbyStatus Камера находится в режиме ожидания для экономии энергии. Камера может перейти в режим ожидания после некоторого времени бездействия в состоянии Camera.LoadedState.
LoadedStatus Камера загружена и готова к настройке. Этот статус указывает, что устройство камеры открыто, и можно запросить поддерживаемые настройки захвата изображений и видео, такие как разрешение, частота кадров и кодеки.
LoadingStatus Загрузка устройства камеры в результате перехода состояния от Camera.UnloadedState к Camera.LoadedState или Camera.ActiveState.
UnloadingStatus Устройство камеры разгружается в результате перехода состояния от Camera.LoadedState или Camera.ActiveState к Camera.UnloadedState.
UnloadedStatus Начальный статус камеры, когда камера не загружена. Возможности камеры, включая поддерживаемые параметры захвата, могут быть неизвестны.
UnavailableStatus Камера или бэкенд камеры недоступны.

captureMode : перечисление

Это свойство содержит режим захвата камеры, который может быть одним из следующих:

Значение Описание
CaptureViewfinder Камера настроена только для отображения видоискателя.
CaptureStillImage Подготавливает камеру для захвата неподвижных изображений.
CaptureVideo Подготавливает камеру для записи видео.

По умолчанию режим захвата — CaptureStillImage.

deviceId : строка

Это свойство содержит уникальный идентификатор устройства камеры, используемого. Он может быть нечитаемым для человека.

Все доступные идентификаторы устройств можно получить из QtMultimedia.availableCameras. Если значение не указано или задано пустой строкой, будет использоваться стандартная камера системы.

Если это возможно, cameraState, captureMode, digitalZoom и другие параметры камеры сохраняются при изменении устройства камеры.

Это свойство QML было добавлено в QtMultimedia 5.4.

См. также displayName и position.

digitalZoom : вещественное число

Это свойство содержит текущий коэффициент цифрового зума.

[только для чтения] displayName : строка

Это свойство содержит удобочитаемое имя камеры.

Вы можете использовать это свойство для отображения имени камеры в пользовательском интерфейсе.

Это свойство QML было добавлено в QtMultimedia 5.4.

См. также deviceId.

errorCode : перечисление

Это свойство содержит последний код ошибки.

См. также error и errorString.

errorString : строка

Это свойство содержит последнюю строку ошибки, если таковая имеется.

См. также error и errorCode.

lockStatus : перечисление

Это свойство содержит статус всех запрошенных блокировок камеры.

Статус может быть одним из следующих значений:

Значение Описание
Unlocked Приложение не заинтересовано в значении параметров камеры. Камера может сохранить этот параметр без изменений, что обычно происходит с фокусом камеры, или постоянно корректировать экспозицию и баланс белого, чтобы изображение в видоискателе было хорошим.
Searching Приложение запросило блокировку фокуса, экспозиции или баланса белого камеры с помощью searchAndLock(). Это состояние указывает, что камера фокусируется или рассчитывает экспозицию и баланс белого.
Locked Фокус, экспозиция или баланс белого камеры заблокированы. Камера готова к захвату, и приложение может проверить параметры экспозиции.

Заблокированное состояние обычно означает, что запрашиваемый параметр остается неизменным, за исключением случаев, когда параметр запрашивается для постоянного обновления. Например, в режиме непрерывной фокусировки фокус считается заблокированным, пока объект находится в фокусе, даже если фактическое расстояние фокусировки может постоянно меняться.

maximumDigitalZoom : вещественное число

Это свойство содержит максимальный коэффициент цифрового зума, поддерживаемый, или 1.0, если цифровой зум не поддерживается.

maximumOpticalZoom : вещественное число

Это свойство содержит максимальный коэффициент оптического зума, поддерживаемый, или 1.0, если оптический зум не поддерживается.

mediaObject : тип данных

Это свойство содержит собственный объект носителя для камеры.

Его можно использовать для получения указателя на объект QCamera с целью интеграции с кодом на C++.

QObject *qmlCamera; // The QML Camera object
QCamera *camera = qvariant_cast<QCamera *>(qmlCamera->property("mediaObject"));

Примечание: к этому свойству нет доступа из QML.

metaData.cameraManufacturer : тип данных

Эти свойства содержат метаданные для захвата камеры.

  • metaData.cameraManufacturer содержит название производителя камеры.
  • metaData.cameraModel содержит название модели камеры.
  • metaData.event содержит событие, во время которого необходимо захватить фото или видео.
  • metaData.subject содержит имя объекта захвата или записи.
  • metaData.orientation содержит поворот камеры по часовой стрелке в момент захвата.
  • metaData.dateTimeOriginal содержит начальное время, в которое было захвачено фото или видео.
  • metaData.gpsLatitude содержит широту камеры в десятичных градусах в момент захвата.
  • metaData.gpsLongitude содержит долготу камеры в десятичных градусах в момент захвата.
  • metaData.gpsAltitude содержит высоту камеры в метрах в момент захвата.
  • metaData.gpsTimestamp содержит метку времени данных GPS-позиции.
  • metaData.gpsTrack содержит направление движения камеры в момент захвата. Оно измеряется в градусах по часовой стрелке от севера.
  • metaData.gpsSpeed содержит скорость камеры в километрах в час в момент захвата.
  • metaData.gpsImgDirection содержит направление, в котором смотрит камера в момент захвата. Оно измеряется в градусах по часовой стрелке от севера.
  • metaData.gpsProcessingMethod содержит имя метода определения GPS-позиции.

Эта группа свойств была добавлена в Qt 5.4.

См. также QMediaMetaData.

opticalZoom : вещественное число

Это свойство содержит текущий коэффициент оптического зума.

[только для чтения] orientation : целое число

Это свойство содержит физическую ориентацию датчика камеры.

Значение — угол поворота (по часовой стрелке, с шагом 90 градусов) датчика камеры относительно дисплея в его естественной ориентации.

Например, предположим мобильное устройство, которое по умолчанию ориентировано в портретной ориентации. Камера задней стороны установлена в альбомной ориентации. Если верхняя сторона датчика камеры выровнена с правым краем экрана в естественной ориентации, orientation возвращает 270. Если верхняя сторона датчика фронтальной камеры выровнена с правым краем экрана, orientation возвращает 90.

Это свойство QML было добавлено в QtMultimedia 5.4.

См. также VideoOutput::orientation.

position : enumeration

Это свойство содержит физическое положение камеры в аппаратной системе.

Положение может быть одним из следующих:

  • Camera.UnspecifiedPosition - положение камеры не указано или неизвестно.
  • Camera.BackFace - камера расположена на задней стороне аппаратной системы. Например, на мобильном устройстве это означает, что она находится на противоположной стороне экрана.
  • Camera.FrontFace - камера расположена на передней стороне аппаратной системы. Например, на мобильном устройстве это означает, что она находится на той же стороне, что и экран. Видоискатель камер, направленных на пользователя, отображается в зеркальном отражении по горизонтали, чтобы пользователь мог видеть себя, как в зеркале. Запечатлённые изображения или видео не отображаются в зеркальном отражении.

На мобильном устройстве это свойство может быть использовано для лёгкого выбора между передней и задней камерами. Если это свойство установлено в Camera.UnspecifiedPosition, будет использоваться стандартная камера системы.

Если возможно, параметры камеры, такие как cameraState, captureMode, digitalZoom и другие, сохраняются при изменении устройства камеры.

Это свойство QML было добавлено в QtMultimedia 5.4.

См. также deviceId.

viewfinder.resolution : size

Эти свойства хранят параметры настроек видоискателя.

viewfinder.resolution хранит разрешение видоискателя камеры. Если разрешение не указано или пусто, ядро использует значение по умолчанию.

viewfinder.minimumFrameRate хранит минимальную частоту кадров для видоискателя в кадрах в секунду. Если значение не указано или установлено в 0, ядро использует значение по умолчанию.

viewfinder.maximumFrameRate хранит максимальную частоту кадров для видоискателя в кадрах в секунду. Если значение не указано или установлено в 0, ядро использует значение по умолчанию.

Если viewfinder.minimumFrameRate равно viewfinder.maximumFrameRate, частота кадров фиксирована. В противном случае фактическая частота кадров колеблется между двумя значениями.

Изменение настроек видоискателя, когда камера находится в состоянии Camera.ActiveState, может привести к перезапуску камеры.

Если камера используется для захвата видео или изображений, настройки видоискателя могут быть проигнорированы, если они конфликтуют с настройками захвата. Вы можете проверить фактические настройки видоискателя, когда камера находится в состоянии Camera.ActiveStatus.

Поддерживаемые значения можно получить с помощью supportedViewfinderResolutions() и supportedViewfinderFrameRateRanges().

Эта группа свойств была добавлена в Qt 5.4.

Документация сигналов

cameraStateChanged(state)

Этот сигнал испускается, когда состояние камеры изменилось на state. Поскольку изменения состояния могут занимать некоторое время, этот сигнал может поступить некоторое время после того, как изменение состояния было запрошено.

Соответствующий обработчик - onCameraStateChanged.

digitalZoomChanged(zoom)

Этот сигнал испускается, когда значение цифрового зума изменилось на zoom.

Соответствующий обработчик - onDigitalZoomChanged.

error(errorCode, errorString)

Этот сигнал испускается при возникновении ошибки. Значение перечисления errorCode является одним из значений, определённых ниже, а описательная строка доступна в errorString.

Значение Описание
NoError Ошибок не произошло.
CameraError Произошла ошибка.
InvalidRequestError Системные ресурсы не поддерживают запрашиваемую функциональность.
ServiceMissingError Сервис камеры недоступен.
NotSupportedFeatureError Функция не поддерживается.

Соответствующий обработчик - onError.

См. также errorCode и errorString.

lockStatusChanged()

Этот сигнал испускается, когда меняется статус блокировки (фокусировка, экспозиция и т.д.). Это может произойти, когда завершается или терпит неудачу блокировка (например, автофокусировка).

Соответствующий обработчик - onLockStatusChanged.

manualWhiteBalanceChanged(qreal)

Этот сигнал испускается при изменении свойства manualWhiteBalance.

Соответствующий обработчик - onManualWhiteBalanceChanged.

maximumDigitalZoomChanged(zoom)

Этот сигнал испускается, когда максимальное значение цифрового зума изменилось на zoom. Это может произойти при переключении между режимами захвата видео и статических изображений или при изменении параметров захвата.

Соответствующий обработчик - onMaximumDigitalZoomChanged.

maximumOpticalZoomChanged(zoom)

Этот сигнал испускается, когда максимальное значение оптического зума изменилось на zoom. Это может произойти при переключении между режимами захвата видео и статических изображений или при изменении параметров захвата.

Соответствующий обработчик - onMaximumOpticalZoomChanged.

opticalZoomChanged(zoom)

Этот сигнал испускается, когда значение оптического зума изменилось на zoom.

Соответствующий обработчик - onOpticalZoomChanged.

whiteBalanceModeChanged(Camera::WhiteBalanceMode)

Этот сигнал испускается при изменении свойства whiteBalanceMode.

Соответствующий обработчик - onWhiteBalanceModeChanged.

Документация методов

searchAndLock()

Начинает вычисление фокусировки, экспозиции и баланса белого.

Этот метод подходит для вызова при нажатии кнопки фокусировки камеры (или при нажатии кнопки захвата камеры наполовину). Если камера поддерживает автофокусировку, информация о зонах фокусировки доступна через свойство focus.

start()

Запускает камеру. Фреймы видоискателя будут доступны, и станет возможен захват изображений или видео.

stop()

Останавливает камеру, но оставляет загруженной стек камеры.

list<object> supportedViewfinderFrameRateRanges(size resolution = undefined)

Возвращает список поддерживаемых диапазонов частоты кадров видоискателя.

Каждый объект диапазона в списке имеет свойства minimumFrameRate и maximumFrameRate.

Если указан необязательный параметр resolution, возвращаемый список сокращается до диапазонов частоты кадров, поддерживаемых для заданного resolution.

Камера должна быть загружена перед вызовом этой функции, в противном случае возвращаемый список пустой.

Этот метод QML был добавлен в Qt 5.5.

См. также viewfinder.

list<size> supportedViewfinderResolutions(real minimumFrameRate = undefined, real maximumFrameRate = undefined)

Возвращает список поддерживаемых разрешений видоискателя.

Если оба необязательных параметра minimumFrameRate и maximumFrameRate указаны, возвращаемый список сокращается до разрешений, поддерживаемых для заданного диапазона частоты кадров.

Камера должна быть загружена перед вызовом этой функции, в противном случае возвращаемый список пустой.

Этот метод QML был добавлен в Qt 5.5.

См. также viewfinder.

unlock()

Разблокирует фокусировку, экспозицию и баланс белого.

© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/archives/qt-5.6/qml-qtmultimedia-camera.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API