Показаны различия между двумя версиями страницы.
Следующая версия | Предыдущая версия | ||
develop:qt:media [2021/10/31 09:31] admin создано |
develop:qt:media [2021/11/05 11:38] (текущий) admin |
||
---|---|---|---|
Строка 1: | Строка 1: | ||
====== Мультимедия ====== | ====== Мультимедия ====== | ||
+ | |||
+ | **qt += multimedia**\\ | ||
+ | |||
+ | {{ : | ||
===== QMediaObject ===== | ===== QMediaObject ===== | ||
+ | Предоставляет некоторые базовые функции, | ||
+ | Классы более высокого уровня обеспечивают фактическую мультимедийную функциональность за счет внутреннего использования **QMediaService** и используют интерфейсы **QMediaControl**, | ||
+ | Большинство медиа-объектов при создании будут запрашивать новый экземпляр **QMediaService**, | ||
- | ==== ==== | + | ==== QMediaService |
+ | **Класс устарел, | ||
+ | Общий базовый класс, для реализации медиа-сервисов.\\ | ||
+ | Из функций толком ничего не указано в доке, видимо выводится из использования, | ||
- | ==== ==== | ||
+ | ==== QMediaControl ==== | ||
+ | Базовый класс для элементов управления медиа-сервисом.\\ | ||
+ | Из функций тоже ничего не указано, | ||
+ | " | ||
===== QCamera ===== | ===== QCamera ===== | ||
+ | Предоставляет интерфейс для системных камер.\\ | ||
+ | Можно использовать с **QCameraViewfinder** для отображения видоискателя, | ||
+ | |||
+ | Имеется несколько свойств: | ||
+ | * **captureMode** - тип носителя (CaptureViewfinder (отображение видоискателя); | ||
+ | * **lockStatus** - общий статус всех запрошенных блокировок камеры (фокус/ | ||
+ | * **state** - текущее состояние камеры (UnloadedState; | ||
+ | * **status** - текущий статус камеры (ActiveStatus; | ||
+ | |||
+ | |||
+ | ==== QCameraImageCapture ==== | ||
+ | Класс для доступа к функциям записи мультимедийных объектов.\\ | ||
+ | enum **CaptureDestination**: | ||
+ | |||
+ | int **Capture(QString)**- захват изображения и сохранение его в файл. Асинхронная, | ||
+ | Если путь/ | ||
+ | Возвращает параметр **Id** используемый в упомянутых сигналах\\ | ||
+ | Перед вызовом стоит проверить готовность камеры, | ||
+ | |||
+ | **imageAvailable(int Id, QVideoFrame)**- сигнал, | ||
+ | |||
+ | |||
+ | ==== QCameraInfo ==== | ||
+ | Получение информации о доступных в системе камерах.\\ | ||
+ | Статические ф-ции **defaultCamera()** и **availableCameras()** возвращают доступные устр-ва.\\ | ||
+ | Можно создавать собственные объекты, | ||
+ | |||
+ | < | ||
+ | < | ||
+ | <code cpp-qt> | ||
+ | const QList< | ||
+ | for(const QCameraInfo & | ||
+ | { | ||
+ | if(cameraInfo.deviceName()== " | ||
+ | camera= new QCamera(cameraInfo()) | ||
+ | } | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | |||
+ | ==== QCameraViewfinder ==== | ||
+ | Виджет видоискателя камеры | ||
+ | |||
+ | < | ||
+ | < | ||
+ | <code cpp-qt> | ||
+ | camera= new Camera; | ||
+ | viewfinder= new QCameraViewfinder(); | ||
+ | viewfinder-> | ||
+ | |||
+ | camera-> | ||
+ | |||
+ | imageCapture= new QCameraImageCapture(camera); | ||
+ | camera-> | ||
+ | camera-> | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | |||
+ | ==== QCameraFocus ==== | ||
+ | Позволяет настраивать фокусировку и масштабирование.\\ | ||
+ | Масштабирование может быть **оптическим** (более дорогое но более качественное, | ||
+ | **maximumOpticalZoom()** позволяет проверить поддержку оптического зума, **zoomTo()** позволяет одновременно изменять оптическое и цифровое масштабирование.\\ | ||
+ | |||
+ | Некоторое оборудование поддерживает автофокусировку, | ||
+ | |||
+ | < | ||
+ | < | ||
+ | <code cpp-qt> | ||
+ | QCameraFocus *focus= camera-> | ||
+ | focus-> | ||
+ | focus-> | ||
+ | |||
+ | // super zoom | ||
+ | focus-> | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | |||
+ | |||
- | ==== ==== | ||
- | ==== ==== | ||