Тип QML камеры
Доступ к кадрам видоискателя, а также к съемке фотографий и видео. Подробнее...
| Оператор импорта: | import QtMultimedia 5.14 |
| Наследуется от: |
Свойства
- 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)
- error(errorCode, errorString)
- lockStatusChanged()
- manualWhiteBalanceChanged()
- maximumDigitalZoomChanged(zoom)
- maximumOpticalZoomChanged(zoom)
- opticalZoomChanged(zoom)
- whiteBalanceModeChanged()
Методы
- searchAndLock()
- start()
- stop()
- list<object> supportedViewfinderFrameRateRanges(resolution)
- list<size> supportedViewfinderResolutions(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 |
Функция не поддерживается. |
См. также error и errorString.
errorString : строка
Это свойство содержит последнюю строку ошибки, если таковая имеется.
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-позиции.
Данное описание документации было добавлено в Qt 5.4.
См. также 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().
Данная документация была добавлена в Qt 5.4.
Документация сигналов
cameraStateChanged(state)
Этот сигнал генерируется, когда состояние камеры изменилось на state. Поскольку смены состояния могут занимать некоторое время, этот сигнал может поступить некоторое время после того, как изменение состояния было запрошено.
Соответствующий обработчик — onCameraStateChanged.
digitalZoomChanged(zoom)
Этот сигнал генерируется, когда настройка цифрового зума изменилась на zoom.
Соответствующий обработчик — onDigitalZoomChanged.
error(errorCode, errorString)
Этот сигнал генерируется, когда произошла ошибка, указанная errorCode. Значение описательной строки доступно в errorString.
Соответствующий обработчик — onError.
См. также errorCode и errorString.
lockStatusChanged()
Этот сигнал генерируется, когда изменяется состояние блокировки (фокуса, экспозиции и т. д.). Это может произойти, когда завершается или не удается завершиться блокировка (например, автофокусировка).
Соответствующий обработчик — onLockStatusChanged.
manualWhiteBalanceChanged()
Этот сигнал генерируется, когда изменяется свойство manualWhiteBalance.
Соответствующий обработчик — onManualWhiteBalanceChanged.
maximumDigitalZoomChanged(zoom)
Этот сигнал генерируется, когда максимальная настройка цифрового зума изменилась на zoom. Это может произойти при переключении между режимами захвата видео и статичных изображений или изменении настроек захвата.
Соответствующий обработчик — onMaximumDigitalZoomChanged.
maximumOpticalZoomChanged(zoom)
Этот сигнал генерируется, когда максимальная настройка оптического зума изменилась на zoom. Это может произойти при переключении между режимами захвата видео и статичных изображений или изменении настроек захвата.
Соответствующий обработчик — onMaximumOpticalZoomChanged.
opticalZoomChanged(zoom)
Этот сигнал генерируется, когда настройка оптического зума изменилась на zoom.
Соответствующий обработчик — onOpticalZoomChanged.
whiteBalanceModeChanged()
Этот сигнал генерируется, когда изменяется свойство whiteBalanceMode.
Соответствующий обработчик — onWhiteBalanceModeChanged.
Документация методов
searchAndLock()
Начинает вычисление фокусировки, экспозиции и баланса белого.
Это уместно вызвать при нажатии кнопки фокусировки камеры (или при нажатии кнопки захвата камеры наполовину). Если камера поддерживает автофокусировку, информация о зонах фокусировки доступна через свойство focus.
start()
Запускает камеру. Кадры видоискателя станут доступными, а захват изображений или видео будет возможен.
stop()
Останавливает камеру, но оставляет загруженной стек камеры.
В этом состоянии камера по-прежнему потребляет энергию.
list<object> supportedViewfinderFrameRateRanges(resolution)
Возвращает список поддерживаемых диапазонов частоты кадров видоискателя.
Каждый объект диапазона в списке имеет свойства minimumFrameRate и maximumFrameRate.
Если необязательный параметр resolution указан, возвращаемый список сокращается до диапазонов частоты кадров, поддерживаемых для заданного resolution.
Камера должна быть загружена перед вызовом этой функции, иначе возвращаемый список пуст.
Этот метод был добавлен в Qt 5.5.
См. также viewfinder.
list<size> supportedViewfinderResolutions(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.14/qml-qtmultimedia-camera.html