Тип 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)
- 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 : перечисление
Это свойство содержит состояние доступности камеры.
Состояния доступности могут быть следующими:
| Значение | Описание |
|---|---|
| Доступна | Камера доступна для использования |
| Занята | Камера занята в данный момент, так как она используется другой задачей. |
| Недоступна | Камера недоступна для использования (возможно, отсутствует оборудование камеры) |
| Отсутствуют ресурсы | Камера не может быть использована из-за отсутствия ресурсов. Возможно, позже можно будет попробовать снова. |
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 : строка
Это свойство содержит последнюю строку ошибки, если таковая имеется.
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/qt-5.9/qml-qtmultimedia-camera.html