Qt Мультимедиа
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 Мультимедиа использует мультимедийный фреймворк базовой операционной системы. Поэтому существуют несколько бэкэндов мультимедиа, основанные на различных технологиях и API.
Мы стараемся поддерживать весь API на всех платформах, но есть некоторые платформенно-зависимые ограничения. Это связано с тем, что набор функций, поддерживаемых этими фреймворками, варьируется, что подразумевает отсутствие некоторых функций на всех платформах. Это особенно верно для набора поддерживаемых форматов файлов и кодеков, а также для продвинутых функций камеры.
В случаях ограничений мы стараемся задокументировать их в соответствующих классах и методах.
Справочник
- 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