Инструменты пользователя

Инструменты сайта


develop:qt:media

Это старая версия документа!


Мультимедия

qt += multimedia

QMediaObject

Предоставляет некоторые базовые функции, которые являются общими для классов более высокого уровня, в основном такие как: доступность, метаданные, функции для соединения со вспомогательными классами.

Классы более высокого уровня обеспечивают фактическую мультимедийную функциональность за счет внутреннего использования QMediaService и используют интерфейсы QMediaControl, реализованные службой, для реализации своего API.
Большинство медиа-объектов при создании будут запрашивать новый экземпляр QMediaService, но некоторые (QMediaRecorder, QAudioRecorder) могут совместно использовать службу.

QMediaService

Класс устарел, не рекомендуется к использованию, альтернатива не указана.
Общий базовый класс, для реализации медиа-сервисов.
Из функций толком ничего не указано в доке, видимо выводится из использования, а функционал вынесен в другие классы.

QMediaControl

Базовый класс для элементов управления медиа-сервисом.
Из функций тоже ничего не указано, наследуемых классов оч много, очевидно именно в них весь функционал
«Большая часть кода приложения не будет напрямую взаимодействовать с элементами управления медиа-службой, вместо этого QMediaObject действует как посредник, между эл управления и приложением»

QCamera

Предоставляет интерфейс для системных камер.
Можно использовать с QCameraViewfinder для отображения видоискателя, QMediaRecorder для записи видео и QCameraImageCapture для съемки изображений

:!: Пример: использование QCameraViewfinder
camera= new Camera;
viewfinder= new QCameraViewfinder();
viewfinder->show();
 
camera->setViewfinder(viewfindeer);
 
imageCapture= new QCameraImageCapture(camera);
camera->setCaptureMode(QCamera::CaptureStillImage);
camera->start();

Можно использовать QCameraInfo для вывода списка и выбора доступных камер

:!: Пример: выбор камеры из списка
const QList<QCameraInfo> vCamers= QCameraInfo::availableCameras();
for(const QCameraInfo &cameraInfo:vCamers)
{
  if(cameraInfo.deviceName()== "myCamera")
    camera= new QCamera(cameraInfo())
}

Имеется несколько свойств:

  • captureMode - тип носителя (CaptureViewfinder; CaptureStillImage; CaptureVideo), изменение режима вызывает изменение статуса камеры. Так же, дается сигнал- captureModeChanged()
  • lockStatus - общий статус всех запрошенных блокировок камеры (фокус/экспозиция и т.д.)
  • state - текущее состояние камеры (UnloadedState; LoadedState; ActiveState). Есть сигнал
  • status - текущий статус камеры (ActiveStatus; Starting; StoppingStatus и т.д.). Есть сигнал

QCameraImageCapture

QCameraInfo

QCameraViewfinder

develop/qt/media.1636091596.txt.gz · Последнее изменение: 2021/11/05 05:53 — admin