Тип QML камеры
Доступ к кадрам видоискателя, фото- и видеосъёмке. Подробнее...
| Заявление об импорте: | import QtMultimedia 5.8 |
| Наследуется от: |
Свойства
- 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 = undefined)
- list<size> supportedViewfinderResolutions(real minimumFrameRate = undefined, real maximumFrameRate = undefined)
- 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 | Камера загружена и готова к настройке. В состоянии простоя вы можете запросить возможности камеры, установить разрешение захвата, кодеки и т. д. В состоянии загрузки видоискатель не активен. |
| 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 и другие параметры камеры сохраняются при изменении устройства камеры.
Это свойство было добавлено в QtMultimedia 5.4.
См. также displayName и position.
digitalZoom : вещественное
Это свойство содержит текущий коэффициент цифрового зума.
[только для чтения] displayName : строка
Это свойство содержит удобочитаемое имя камеры.
Вы можете использовать это свойство для отображения имени камеры в пользовательском интерфейсе.
Это свойство было добавлено в QtMultimedia 5.4.
См. также deviceId.
errorCode : перечисление
Это свойство содержит последний код ошибки.
См. также error и errorString.
errorString : строка
Это свойство содержит последнюю строку ошибки, если она есть.
lockStatus : перечисление
Это свойство содержит статус всех запрошенных блокировок камеры.
Статус может быть одним из следующих значений:
| Значение | Описание |
|---|---|
| Unlocked | Приложение не заинтересовано в значении параметров камеры. Камера может сохранять этот параметр без изменений, что обычно происходит с фокусом камеры, или постоянно корректировать экспозицию и баланс белого, чтобы изображение в видоискателе было красивым. |
| Searching | Приложение запросило блокировку фокуса, экспозиции или баланса белого с помощью searchAndLock(). Это состояние указывает, что камера фокусируется или рассчитывает экспозицию и баланс белого. |
| Locked | Фокус, экспозиция или баланс белого камеры заблокированы. Камера готова к захвату, и приложение может проверить параметры экспозиции. Заблокированное состояние обычно означает, что запрошенный параметр остается неизменным, за исключением случаев, когда параметр запрошено обновлять постоянно. Например, в режиме непрерывной фокусировки фокус считается заблокированным, пока объект находится в фокусе, даже если фактическое расстояние фокусировки может постоянно меняться. |
maximumDigitalZoom : вещественное
Это свойство содержит максимальный коэффициент цифрового зума, поддерживаемый, или 1.0, если цифровой зум не поддерживается.
maximumOpticalZoom : вещественное
Это свойство содержит максимальный коэффициент оптического зума, поддерживаемый, или 1.0, если оптический зум не поддерживается.
mediaObject : variant
Это свойство содержит собственный объект мультимедиа для камеры.
Его можно использовать для получения указателя на объект QCamera для интеграции с кодом C++.
QObject *qmlCamera; // The QML Camera object
QCamera *camera = qvariant_cast<QCamera *>(qmlCamera->property("mediaObject")); Примечание: Это свойство недоступно из QML.
metaData.cameraManufacturer : variant
Эти свойства содержат метаданные для захватов камеры.
-
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.
Этот свойство был добавлен в QtMultimedia 5.4.
См. также VideoOutput::orientation.
position : перечисление
Это свойство хранит физическое положение камеры в аппаратной системе.
Положение может быть одним из следующих:
-
Camera.UnspecifiedPosition- положение камеры не определено или неизвестно. -
Camera.BackFace- камера расположена на задней стороне аппаратной системы. Например, на мобильном устройстве, это означает, что она находится на противоположной стороне экрана. -
Camera.FrontFace- камера расположена на передней стороне аппаратной системы. Например, на мобильном устройстве, это означает, что она находится на той же стороне, что и экран. Видоискатели фронтальных камер отображаются в зеркальном отражении по горизонтали, поэтому пользователи видят себя как в зеркале. Захваченные изображения или видео не отображаются в зеркальном отражении.
На мобильном устройстве это свойство можно использовать для легкого выбора между фронтальной и тыльной камерами. Если это свойство установлено в Camera.UnspecifiedPosition, будет использоваться стандартная камера системы.
Если это возможно, cameraState, captureMode, digitalZoom и другие параметры камеры сохраняются при изменении устройства камеры.
Это свойство был добавлен в QtMultimedia 5.4.
См. также deviceId.
viewfinder.resolution : размер
Эти свойства хранят настройки видоискателя.
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()
Останавливает камеру, но оставляет загруженный стек камеры.
список<объект> supportedViewfinderFrameRateRanges(размер resolution = undefined)
Возвращает список поддерживаемых диапазонов частоты кадров видоискателя.
Каждый объект диапазона в списке имеет свойства minimumFrameRate и maximumFrameRate.
Если необязательный параметр resolution задан, возвращаемый список сокращается до диапазонов частоты кадров, поддерживаемых для данного resolution.
Камера должна быть загружена перед вызовом этой функции, в противном случае возвращаемый список пуст.
Этот метод был добавлен в Qt 5.5.
См. также viewfinder.
список<размер> supportedViewfinderResolutions(вещественный minimumFrameRate = undefined, вещественный maximumFrameRate = undefined)
Возвращает список поддерживаемых разрешений видоискателя.
Если оба необязательных параметра minimumFrameRate и maximumFrameRate заданы, возвращаемый список сокращается до разрешений, поддерживаемых для данного диапазона частоты кадров.
Камера должна быть загружена перед вызовом этой функции, в противном случае возвращаемый список пуст.
Этот метод был добавлен в 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.11/qml-qtmultimedia-camera.html