Spec-Zone.ru › Qt

Qt Мультимедиа

"image of multimedia icons, courtesy of misirlou from the Noun Project"

Qt Мультимедиа — это дополнительный модуль, который предоставляет богатый набор типов QML и классов C++, предназначенных для работы с мультимедийным контентом. Он содержит удобный API для воспроизведения аудио- и видеофайлов и отображения их на экране, а также комплексный API для записи аудио и видео с системных камер и микрофонов.

Функциональность этого модуля разделена на следующие подмодули:

Qt Мультимедиа Предоставляет API для конкретных задач мультимедиа.
Qt Мультимедийные виджеты Предоставляет API на основе виджетов для работы с мультимедиа.

Начало работы

Если вы переходите с Qt 5 на Qt 6, см. Изменения в Qt Мультимедиа.

Если вы новичок в Qt Мультимедиа, типы QML можно импортировать в приложение, используя следующую инструкцию в вашем файле .qml.

import QtMultimedia

Если вы хотите использовать классы C++ в своем приложении, включите определения C++ с помощью следующей директивы:

#include <QtMultimedia>
#include <QtMultimediaWidgets>

Примечание: Если вы используете несколько классов из этого модуля, рекомендуется включать только эти конкретные классы вместо всего модуля.

Для связи с библиотеками C++, добавьте следующее в файл CMakeLists.txt вашего проекта. Замените my_project именем вашего проекта.

find_package(Qt6 COMPONENTS Multimedia REQUIRED)
target_link_libraries(my_project PUBLIC Qt::Multimedia)

Типы QML

В следующей таблице представлены некоторые важные типы QML.

Тип Описание
MediaPlayer Добавляет функциональность воспроизведения аудио/видео в сцену.
CaptureSession Создаёт сессию для захвата аудио/видео.
Camera Доступ к подключённой к системе камере.
AudioInput Доступ к подключенному аудиовходу (микрофон).
AudioOutput Доступ к аудиовыходу (динамики, наушники).
VideoOutput Отображение видеоконтента.
MediaRecorder Запись аудио/видео из CaptureSession.
ImageCapture Захват статических изображений с камеры.
Video Добавляет функциональность воспроизведения видео в сцену. Использует типы MediaPlayer и VideoOutput для воспроизведения видео.

Классы C++

В следующей таблице представлены некоторые важные классы C++.

Класс Описание
QMediaPlayer Воспроизведение медиа из источника.
QVideoWidget Отображение видео с медиаплеера или сессии захвата.
QMediaCaptureSession Захват аудио и видео.
QCamera Доступ к подключённой к системе камере.
QAudioInput Доступ к подключенному аудиовходу (микрофон).
QAudioOutput Доступ к аудиовыходу (динамики, наушники).
QImageCapture Захват статических изображений с камеры.
QMediaRecorder Запись медиа-контента из сессии захвата.
QVideoSink Доступ и отрисовка отдельных видеокадров.
QAudioSink Отправка необработанных аудиоданных на устройство аудиовыхода.

Для воспроизведения QMediaPlayer, QAudioOutput и QVideoOutput содержат всю необходимую функциональность. Другие классы используются для захвата аудио и видео контента, где QMediaCaptureSession является центральным классом, управляющим всем процессом захвата/записи.

Лицензии и авторские права

Модуль Qt Quick Multimedia доступен по коммерческим лицензиям от The Qt Company. Кроме того, он доступен по лицензиям свободного ПО. Начиная с Qt 5.6, эти лицензии свободного ПО — GNU Lesser General Public License, версия 3 или GNU General Public License, версия 2. Дополнительную информацию см. в Qt Licensing.

Связанная информация

Руководства

  • Изменения в Qt 6
  • Обзор мультимедиа
  • Обзор аудио
  • Обзор видео
  • Обзор камеры

Примечания к платформам

Для большинства функций Qt Мультимедиа использует мультимедийный фреймворк базовой операционной системы. Поэтому существуют несколько бэкэндов мультимедиа, основанные на различных технологиях и API.

Мы стараемся поддерживать весь API на всех платформах, но есть некоторые платформенно-зависимые ограничения. Это связано с тем, что набор функций, поддерживаемых этими фреймворками, варьируется, что подразумевает отсутствие некоторых функций на всех платформах. Это особенно верно для набора поддерживаемых форматов файлов и кодеков, а также для продвинутых функций камеры.

В случаях ограничений мы стараемся задокументировать их в соответствующих классах и методах.

  • macOS и iOS

Справочник

  • Qt Мультимедиа
    • Типы QML
    • Классы C++

Примеры

  • Примеры Qt Мультимедиа

© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-6.2/qtmultimedia-index.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API