Предоставляет некоторые базовые функции, которые являются общими для классов более высокого уровня, в основном такие как: доступность, метаданные, функции для соединения со вспомогательными классами.
Классы более высокого уровня обеспечивают фактическую мультимедийную функциональность за счет внутреннего использования QMediaService и используют интерфейсы QMediaControl, реализованные службой, для реализации своего API.
Большинство медиа-объектов при создании будут запрашивать новый экземпляр QMediaService, но некоторые (QMediaRecorder, QAudioRecorder) могут совместно использовать службу.
Класс устарел, не рекомендуется к использованию, альтернатива не указана.
Общий базовый класс, для реализации медиа-сервисов.
Из функций толком ничего не указано в доке, видимо выводится из использования, а функционал вынесен в другие классы.
Базовый класс для элементов управления медиа-сервисом.
Из функций тоже ничего не указано, наследуемых классов оч много, очевидно именно в них весь функционал
«Большая часть кода приложения не будет напрямую взаимодействовать с элементами управления медиа-службой, вместо этого QMediaObject действует как посредник, между эл управления и приложением»
Предоставляет интерфейс для системных камер.
Можно использовать с QCameraViewfinder для отображения видоискателя, QMediaRecorder для записи видео и QCameraImageCapture для съемки изображений
Имеется несколько свойств:
Класс для доступа к функциям записи мультимедийных объектов.
enum CaptureDestination: {CaptureToFile; CaptureToBuffer}
int Capture(QString)- захват изображения и сохранение его в файл. Асинхронная, вызываются сигналы типа imageCaptured(), imageSaved(id, name), error().
Если путь/имя файла не передано в аргументе, используется умолчательные, возвращается в сигналах.
Возвращает параметр Id используемый в упомянутых сигналах
Перед вызовом стоит проверить готовность камеры, свойство- isReadyForCapture(). Есть соответствующий сигнал.
imageAvailable(int Id, QVideoFrame)- сигнал, посылается когда захват установлен в буфер и есть доступный кадр.
Получение информации о доступных в системе камерах.
Статические ф-ции defaultCamera() и availableCameras() возвращают доступные устр-ва.
Можно создавать собственные объекты, ссылающиеся на физ устр-ва
const QList<QCameraInfo> vCamers= QCameraInfo::availableCameras(); for(const QCameraInfo &cameraInfo:vCamers) { if(cameraInfo.deviceName()== "myCamera") camera= new QCamera(cameraInfo()) }
Виджет видоискателя камеры
camera= new Camera; viewfinder= new QCameraViewfinder(); viewfinder->show(); camera->setViewfinder(viewfindeer); imageCapture= new QCameraImageCapture(camera); camera->setCaptureMode(QCamera::CaptureStillImage); camera->start();
Позволяет настраивать фокусировку и масштабирование.
Масштабирование может быть оптическим (более дорогое но более качественное, используются сенсоры камеры поэтому может не поддерживаться) либо цифровым (простое увеличение части рамки).
maximumOpticalZoom() позволяет проверить поддержку оптического зума, zoomTo() позволяет одновременно изменять оптическое и цифровое масштабирование.
Некоторое оборудование поддерживает автофокусировку, можно использовать с помощью FocusPointMode. Можно использовать в сочетании с QCameraFocusZone.
QCameraFocus *focus= camera->focus(); focus->setFocusMode(QCameraFocus::FocusPointCustom); focus->setCustomFocusPoint(QPointF(0.25f, 0.75f)); // super zoom focus->zoomTo(3.0, 4.0);