Тип QML камеры
Доступ к кадрам видоискателя, а также к возможности фотографировать и снимать видео. Подробнее...
| Заявление об импорте: | import QtMultimedia 5.15 |
| Наследуется от: |
Свойства
- availability : перечисление
- cameraState : перечисление
- cameraStatus : перечисление
- captureMode : перечисление
- deviceId : строка
- digitalZoom : вещественное число
- displayName : строка
- errorCode : перечисление
- errorString : строка
- lockStatus : перечисление
- maximumDigitalZoom : вещественное число
- maximumOpticalZoom : вещественное число
- mediaObject : переменная
-
metaData
- metaData.cameraManufacturer : переменная
- metaData.cameraModel : переменная
- metaData.dateTimeOriginal : переменная
- metaData.event : переменная
- metaData.gpsAltitude : переменная
- metaData.gpsImgDirection : переменная
- metaData.gpsLatitude : переменная
- metaData.gpsLongitude : переменная
- metaData.gpsProcessingMethod : переменная
- metaData.gpsSpeed : переменная
- metaData.gpsTimestamp : переменная
- metaData.gpsTrack : переменная
- metaData.orientation : переменная
- metaData.subject : переменная
- opticalZoom : вещественное число
- orientation : целое число
- position : перечисление
-
viewfinder
- viewfinder.maximumFrameRate : вещественное число
- viewfinder.minimumFrameRate : вещественное число
- viewfinder.resolution : размер
Сигналы
- cameraStateChanged(state)
- digitalZoomChanged(zoom)
- errorOccurred(errorCode, errorString)
- lockStatusChanged()
- manualWhiteBalanceChanged()
- maximumDigitalZoomChanged(zoom)
- maximumOpticalZoomChanged(zoom)
- opticalZoomChanged(zoom)
- whiteBalanceModeChanged()
Методы
- 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 | Методы и свойства для захвата неподвижных изображений. |
| videoRecorder | Методы и свойства для захвата видео. |
| exposure | Методы и свойства для регулировки экспозиции (диафрагмы, выдержки и т. д.). |
| focus | Методы и свойства для регулировки фокуса и предоставления обратной связи о прогрессе автофокусировки. |
| flash | Методы и свойства для управления вспышкой камеры. |
| imageProcessing | Методы и свойства для регулировки параметров обработки изображений камеры. |
Базовое управление состоянием камеры, сообщение об ошибках и простые свойства масштабирования доступны в самой камере. Для интеграции с кодом C++, свойство mediaObject позволяет получить доступ к стандартным элементам управления камерой Qt Multimedia.
Многие настройки камеры могут потребовать некоторое время для применения и могут быть ограничены определенными поддерживаемыми значениями в зависимости от оборудования. Некоторые настройки камеры могут устанавливаться вручную или автоматически. Эти свойства содержат текущее установленное значение. Например, при включенном автофокусе зоны фокусировки отображаются в свойстве focus.
Для получения дополнительной информации ознакомьтесь также с обзором камеры.
Документация по свойствам
availability : перечисление
Это свойство содержит состояние доступности камеры.
| Константа | Описание |
|---|---|
Camera.Available |
Камера доступна для использования. |
Camera.Busy |
Камера занята в данный момент, так как используется другой процессом. |
Camera.Unavailable |
Камера недоступна для использования (возможно, нет оборудования камеры). |
Camera.ResourceMissing |
Камера недоступна для использования из-за отсутствия ресурсов. Возможно, можно будет попробовать снова позже. |
cameraState : перечисление
Это свойство содержит текущее состояние объекта камеры. Значение по умолчанию для состояния камеры - ActiveState.
| Константа | Описание |
|---|---|
Camera.UnloadedState |
Начальное состояние камеры, при котором камера не загружена. Возможности камеры (за исключением поддерживаемых режимов захвата) неизвестны. Это состояние обеспечивает наименьшее энергопотребление, но требует больше времени для подготовки к захвату. Хотя поддерживаемые настройки в этом состоянии неизвестны, вы всё же можете задать параметры захвата камеры, такие как кодек, разрешение или частота кадров. |
Camera.LoadedState |
Камера загружена и готова к настройке. В этом состоянии вы можете запросить возможности камеры, задать разрешение захвата, кодеки и т.д. Видоискатель не активен в загруженном состоянии. В этом состоянии камера потребляет энергию. |
Camera.ActiveState |
В активном состоянии кадры видоискателя доступны, и камера готова к захвату. |
cameraStatus : перечисление
Это свойство содержит текущий статус объекта камеры.
| Константа | Описание |
|---|---|
Camera.ActiveStatus |
Камера запущена и может производить данные, видоискатель отображает видеокадры. В зависимости от бэкенда, изменение настроек камеры, таких как режим захвата, кодеки или разрешение в Camera.ActiveState может привести к изменению статуса на LoadedStatus и StartingStatus во время применения настроек, и обратно к ActiveStatus когда камера готова. |
Camera.StartingStatus |
Камера переходит в состояние Camera.ActiveState. Сервис камеры еще не готов к захвату. |
Camera.StoppingStatus |
Камера переходит из состояния Camera.ActiveState в Camera.LoadedState или Camera.UnloadedState. |
Camera.StandbyStatus |
Камера находится в режиме ожидания экономии энергии. Камера может перейти в режим ожидания после некоторого времени бездействия в состоянии Camera.LoadedState. |
Camera.LoadedStatus |
Камера загружена и готова к настройке. Этот статус указывает, что камера открыта, и можно запросить поддерживаемые параметры захвата изображений и видео, такие как разрешение, частота кадров и кодеки. |
Camera.LoadingStatus |
Камера переходит из состояния Camera.UnloadedState в Camera.LoadedState или Camera.ActiveState. |
Camera.UnloadingStatus |
Камера переходит из состояния Camera.LoadedState или Camera.ActiveState в Camera.UnloadedState. |
Camera.UnloadedStatus |
Начальный статус камеры, при котором камера не загружена. Возможности камеры, включая поддерживаемые параметры захвата, могут быть неизвестны. |
Camera.UnavailableStatus |
Камера или бэкенд камеры недоступны. |
captureMode : перечисление
Это свойство содержит режим захвата камеры. По умолчанию режим захвата — CaptureStillImage.
| Константа | Описание |
|---|---|
Camera.CaptureViewfinder |
Камера настроена только для отображения видоискателя. |
Camera.CaptureStillImage |
Подготавливает камеру к захвату статических изображений. |
Camera.CaptureVideo |
Подготавливает камеру к захвату видео. |
deviceId : строка
Это свойство содержит уникальный идентификатор используемого устройства камеры. Он может быть нечитабельным для человека.
Все доступные идентификаторы устройств можно получить из QtMultimedia.availableCameras. Если значение не указано или установлено в пустую строку, будет использоваться стандартная камера системы.
Если это возможно, cameraState, captureMode, digitalZoom и другие параметры камеры сохраняются при смене устройства камеры.
Это свойство было добавлено в Qt 5.4.
См. также displayName и position.
digitalZoom : вещественное
Это свойство содержит текущий коэффициент цифрового зума.
[только для чтения] displayName : строка
Это свойство содержит удобочитаемое имя камеры.
Вы можете использовать это свойство для отображения имени камеры в пользовательском интерфейсе.
Это свойство было добавлено в Qt 5.4.
См. также deviceId.
errorCode : перечисление
Это свойство содержит последний код ошибки.
| Константа | Описание |
|---|---|
Camera.NoError |
Ошибок не было. |
Camera.CameraError |
Произошла ошибка. |
Camera.InvalidRequestError |
Системные ресурсы не поддерживают запрашиваемую функциональность. |
Camera.ServiceMissingError |
Сервис камеры недоступен. |
Camera.NotSupportedFeatureError |
Функция не поддерживается. |
См. также errorOccurred и errorString.
errorString : строка
Это свойство содержит последнюю строку ошибки, если таковая имеется.
См. также errorOccurred и errorCode.
lockStatus : перечисление
Это свойство содержит статус всех запрошенных блокировок камеры.
| Константа | Описание |
|---|---|
Camera.Unlocked |
Приложение не заинтересовано в значении параметров камеры. Камера может сохранять этот параметр без изменений, что обычно характерно для фокусировки камеры, или постоянно корректировать экспозицию и баланс белого, чтобы изображение в видоискателе было хорошим. |
Camera.Searching |
Приложение запросило блокировку фокусировки, экспозиции или баланса белого с помощью searchAndLock(). Это состояние указывает, что камера фокусируется или рассчитывает экспозицию и баланс белого. |
Camera.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-позиции.
Это свойство QML было добавлено в Qt 5.4.
END_OF_DOCUMENT_MARKERСм. также QMediaMetaData.
opticalZoom : real
Это свойство содержит текущий коэффициент оптического зума.
[только для чтения] orientation : int
Это свойство содержит физическую ориентацию датчика камеры.
Значение — угол поворота (по часовой стрелке, с шагом в 90 градусов) датчика камеры относительно дисплея в его естественной ориентации.
Например, предположим мобильное устройство, которое по умолчанию ориентировано в портретной ориентации. Камера задней панели установлена в альбомной ориентации. Если верхняя сторона датчика камеры выровнена с правым краем экрана в естественной ориентации, orientation возвращает 270. Если верхняя сторона датчика передней камеры выровнена с правым краем экрана, orientation возвращает 90.
Это свойство было добавлено в Qt 5.4.
См. также VideoOutput::orientation.
position : enumeration
Это свойство содержит физическое положение камеры в аппаратной системе.
На мобильном устройстве это свойство можно использовать для лёгкого выбора между передней и задней камерами. Если это свойство установлено в Camera.UnspecifiedPosition, используется системная камера по умолчанию.
Если возможно, cameraState, captureMode, digitalZoom и другие параметры камеры сохраняются при изменении устройства камеры.
| Постоянная | Описание |
|---|---|
Camera.UnspecifiedPosition |
Положение камеры не определено или неизвестно. |
Camera.BackFace |
Камера расположена на задней стороне аппаратной системы. Например, на мобильном устройстве она находится на стороне, противоположной экрану. |
Camera.FrontFace |
Камера расположена на передней стороне аппаратной системы. Например, на мобильном устройстве это означает, что она находится на той же стороне, что и экран. Видоискатели передних камер отображаются в зеркальном отражении по горизонтали, чтобы пользователи могли видеть себя, как будто смотрятся в зеркало. Захваченные изображения или видео не отображаются в зеркальном отражении. |
Это свойство было добавлено в Qt 5.4.
См. также deviceId.
viewfinder.maximumFrameRate : real
Эти свойства содержат настройки видоискателя.
viewfinder.resolution содержит разрешение видоискателя камеры. Если разрешение не указано или пусто, бэкенд использует значение по умолчанию.
viewfinder.minimumFrameRate содержит минимальную частоту кадров для видоискателя в кадрах в секунду. Если значение не указано или установлено в 0, бэкенд использует значение по умолчанию.
viewfinder.maximumFrameRate содержит максимальную частоту кадров для видоискателя в кадрах в секунду. Если значение не указано или установлено в 0, бэкенд использует значение по умолчанию.
Если viewfinder.minimumFrameRate равно viewfinder.maximumFrameRate, частота кадров фиксирована. В противном случае фактическая частота кадров колеблется между этими двумя значениями.
Изменение настроек видоискателя, когда камера находится в состоянии Camera.ActiveState может привести к перезапуску камеры.
Если камера используется для захвата видео или изображений, настройки видоискателя могут быть проигнорированы, если они конфликтуют с настройками захвата. Вы можете проверить фактические настройки видоискателя, когда камера находится в состоянии Camera.ActiveStatus.
Поддерживаемые значения можно получить с помощью supportedViewfinderResolutions() и supportedViewfinderFrameRateRanges().
Это свойство QML было добавлено в Qt 5.4.
Документация по сигналам
cameraStateChanged(state)
Этот сигнал испускается, когда состояние камеры изменилось на state. Поскольку изменения состояния могут занимать некоторое время, этот сигнал может поступить некоторое время после того, как изменение состояния было запрошено.
Соответствующий обработчик — onCameraStateChanged.
Примечание: Соответствующий обработчик — onCameraStateChanged.
digitalZoomChanged(zoom)
Этот сигнал испускается, когда значение цифрового зума изменилось на zoom.
Соответствующий обработчик — onDigitalZoomChanged.
Примечание: Соответствующий обработчик — onDigitalZoomChanged.
errorOccurred(errorCode, errorString)
Этот сигнал испускается, когда возникает ошибка, указанная errorCode. Описательное строковое значение доступно в errorString.
Соответствующий обработчик — onError.
Примечание: Соответствующий обработчик — onErrorOccurred.
Этот сигнал был добавлен в Qt 5.15.
См. также errorCode и errorString.
lockStatusChanged()
Этот сигнал испускается, когда меняется статус блокировки (фокусировки, экспозиции и т.д.). Это может произойти, когда блокировка (например, автофокусировка) завершена или не удалась.
Соответствующий обработчик — onLockStatusChanged.
Примечание: Соответствующий обработчик — onLockStatusChanged.
manualWhiteBalanceChanged()
Этот сигнал испускается, когда свойство manualWhiteBalance изменяется.
Соответствующий обработчик — onManualWhiteBalanceChanged.
Примечание: Соответствующий обработчик — onManualWhiteBalanceChanged.
maximumDigitalZoomChanged(zoom)
Этот сигнал испускается, когда максимальное значение цифрового зума изменяется на zoom. Это может произойти, когда вы переключаетесь между режимами видео и фотосъемки или меняются настройки захвата.
Соответствующий обработчик — onMaximumDigitalZoomChanged.
Примечание: Соответствующий обработчик — onMaximumDigitalZoomChanged.
maximumOpticalZoomChanged(zoom)
Этот сигнал испускается, когда максимальное значение оптического зума изменяется на zoom. Это может произойти, когда вы переключаетесь между режимами видео и фотосъемки или меняются настройки захвата.
Соответствующий обработчик — onMaximumOpticalZoomChanged.
Примечание: Соответствующий обработчик — onMaximumOpticalZoomChanged.
opticalZoomChanged(zoom)
Этот сигнал испускается, когда значение оптического зума изменяется на zoom.
Соответствующий обработчик — onOpticalZoomChanged.
Примечание: Соответствующий обработчик — onOpticalZoomChanged.
whiteBalanceModeChanged()
Этот сигнал испускается, когда свойство whiteBalanceMode изменяется.
Соответствующий обработчик — onWhiteBalanceModeChanged.
Примечание: Соответствующий обработчик — onWhiteBalanceModeChanged.
Документация по методам
searchAndLock()
Начать вычисления фокусировки, экспозиции и баланса белого.
Это подходит для вызова при нажатии кнопки фокусировки камеры (или при полунажатии кнопки захвата камеры). Если камера поддерживает автофокусировку, информация о зонах фокусировки доступна через свойство focus.
start()
Запускает камеру. Кадры видоискателя будут доступны, и будет возможен захват изображений или видео.
stop()
Останавливает камеру, но оставляет загруженный стек камеры.
В этом состоянии камера всё ещё потребляет энергию.
list<object> supportedViewfinderFrameRateRanges(size resolution)
Возвращает список поддерживаемых диапазонов частоты кадров видоискателя.
Каждый объект диапазона в списке имеет свойства minimumFrameRate и maximumFrameRate.
Если необязательный параметр resolution указан, возвращаемый список сокращается до диапазонов частоты кадров, поддерживаемых для данного resolution.
Камера должна быть загружена перед вызовом этой функции, в противном случае возвращаемый список пуст.
Этот метод был добавлен в Qt 5.5.
См. также viewfinder.
list<size> supportedViewfinderResolutions(real minimumFrameRate, real maximumFrameRate)
Возвращает список поддерживаемых разрешений видоискателя.
Если оба необязательных параметра 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/qt-5.15/qml-qtmultimedia-camera.html