Qt Multimedia QML API
Обзор
Модуль Qt Multimedia предоставляет разработчикам упрощенный способ использования аудио- и видеовоспроизведения, а также доступа к функциям камеры. API Multimedia QML предоставляет дружественный QML интерфейс к этим функциям.
Типы
Аудио
Аудио — простой способ добавить аудиовоспроизведение в сцену Qt Quick. Qt Multimedia предоставляет свойства для управления, методы (функции) и сигналы.
Ниже приведён фрагмент кода, демонстрирующий создание и использование экземпляра Audio.
Item {
width: 640
height: 360
Audio {
id: playMusic
source: "music.wav"
}
MouseArea {
id: playArea
anchors.fill: parent
onPressed: { playMusic.play() }
}
} Вышеприведенный фрагмент показывает, как включение playMusic включает аудиофункции в типе, который его содержит. Таким образом, при нажатии области MouseArea родителя вызывается метод play() объекта Audio. Доступны и другие типичные методы управления аудио, такие как pause() и stop().
Большая часть получения/установления параметров Аудио выполняется через свойства. К ним относятся
| Свойство | Описание |
|---|---|
| source | URL источника медиаданных. |
| autoLoad | Указывает, нужно ли начинать загрузку медиаданных сразу. |
| playing | Указывает, что медиаданные воспроизводятся. |
| paused | Медиаданные приостановлены. |
| status | Состояние загрузки медиаданных. |
| duration | Продолжительность воспроизведения медиаданных в миллисекундах. |
| position | Текущая позиция воспроизведения медиаданных в миллисекундах. |
| volume | Громкость аудиовывода: от 0,0 (тихо) до 1,0 (максимально). |
| muted | Указывает, что аудиовыход выключен. |
| bufferProgress | Указывает степень заполненности буфера данных: от 0,0 (пусто) до 1,0 (полно). |
| seekable | Указывает, можно ли изменить позицию аудио. |
| playbackRate | Скорость воспроизведения аудио в кратности к нормальной скорости. |
| error | Код ошибки, включая NoError. |
| errorString | Описание текущей ошибки. |
Набор доступных сигналов позволяет разработчику создавать пользовательское поведение при возникновении следующих событий,
| Сигнал | Описание |
|---|---|
| playing | Вызывается при запуске воспроизведения или при возобновлении после приостановки. |
| paused | Вызывается при приостановке воспроизведения. |
| stopped | Вызывается при остановке воспроизведения. |
| error | Вызывается при возникновении указанной ошибки. |
Камера
Камера позволяет осуществлять захват неподвижных изображений и видео с помощью QML. Она имеет ряд свойств, которые помогают в её настройке.
Подробное описание использования Камеры приведено в Обзоре камеры и соответствующей справочной документации.
Видео
Добавление видеовоспроизведения с звуком в сцену Qt Quick также просто. Процесс очень похож на описанный выше для Аудио, фактически Видео использует многие имена свойств, методы и сигналы. Вот эквивалентный фрагмент кода для реализации видеовоспроизведения в сцене
Video {
id: video
width : 800
height : 600
source: "video.avi"
MouseArea {
anchors.fill: parent
onClicked: {
video.play()
}
}
focus: true
Keys.onSpacePressed: video.paused = !video.paused
Keys.onLeftPressed: video.position -= 5000
Keys.onRightPressed: video.position += 5000
} Существуют аналогичные функции, такие как play() с новыми функциями, специфичными для видео.
В приведенном выше примере, при нажатии родительской области MouseArea, в области размером 800x600 пикселей с id 'video' будет воспроизводиться источник "video.avi". Обратите также внимание, что определены сигналы для Клавиш, поэтому нажатие пробела будет переключать паузу; левая стрелка переместит текущую позицию видео на 5 секунд назад; а правая стрелка продвинет текущую позицию видео вперёд на 5 секунд.
Большинство отличий, очевидно, будут связаны с управлением и информацией о видео. Существует множество свойств, связанных с Видео, большинство из них связаны с метаданными, управлением медиа-данными видео и аспектами представления.
SoundEffect
SoundEffect предоставляет способ воспроизведения коротких звуковых эффектов, например, в видеоиграх. Несколько экземпляров звуковых эффектов могут воспроизводиться одновременно. Для воспроизведения музыки используйте Аудио.
Item {
width: 640
height: 360
SoundEffect {
id: effect
source: "test.wav"
}
MouseArea {
id: playArea
anchors.fill: parent
onPressed: { effect.play() }
}
} В приведенном выше примере звуковой эффект будет воспроизведён при нажатии области MouseArea.
Для получения полного описания этого типа см. SoundEffect
Типы QML мультимедиа
Удобный тип для отображения указанного видео |
|
Добавить аудиовоспроизведение в сцену |
|
Добавить воспроизведение медиа в сцену |
|
Доступ к кадрам видоискателя, а также к фото- и видеосъёмке |
|
Интерфейс для захвата изображений с камеры |
|
Интерфейс для настроек камеры, связанных с экспозицией |
|
Интерфейс для настроек камеры, связанных с вспышкой |
|
Интерфейс для настроек камеры, связанных с фокусом |
|
Интерфейс для настроек, связанных с захватом изображений с камеры |
|
Управление видеозаписью с помощью камеры |
|
Предоставляет глобальный объект с полезными функциями из Qt Multimedia |
|
Для указания списка медиа, которые нужно воспроизвести |
|
Определяет элемент в списке воспроизведения |
|
Доступ к радиофункциональности из приложения QML |
|
Доступ к данным RDS из приложения QML |
|
Простое управление функцией фонарика |
|
Тип предоставляет способ воспроизведения звуковых эффектов в QML |
|
Рендеринг видео или видоискателя камеры |
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-5.9/qml-multimedia.html