Класс QSoundEffect
Класс QSoundEffect предоставляет способ воспроизведения звуковых эффектов с низкой задержкой. Подробнее...
| Заголовок: | #include <QSoundEffect> |
| qmake: | QT += multimedia |
| Создаётся из: | SoundEffect |
| Наследуется от: | QObject |
Типы публичного доступа
| перечисление | Loop { Infinite } |
| перечисление | Status { Null, Loading, Ready, Error } |
Свойства
|
Функции публичного доступа
| QSoundEffect(const QAudioDeviceInfo &audioDevice, QObject *parent = nullptr) | |
| QSoundEffect(QObject *parent = nullptr) | |
| virtual | ~QSoundEffect() |
| QString | category() const |
| bool | isLoaded() const |
| bool | isMuted() const |
| bool | isPlaying() const |
| int | loopCount() const |
| int | loopsRemaining() const |
| void | setCategory(const QString &category) |
| void | setLoopCount(int loopCount) |
| void | setMuted(bool muted) |
| void | setSource(const QUrl &url) |
| void | setVolume(qreal volume) |
| QUrl | source() const |
| QSoundEffect::Status | status() const |
| qreal | volume() const |
Свойства-слоты публичного доступа
| void | play() |
| void | stop() |
Сигналы
| void | categoryChanged() |
| void | loadedChanged() |
| void | loopCountChanged() |
| void | loopsRemainingChanged() |
| void | mutedChanged() |
| void | playingChanged() |
| void | sourceChanged() |
| void | statusChanged() |
| void | volumeChanged() |
Статические члены публичного доступа
| QStringList | supportedMimeTypes() |
Подробное описание
Этот класс позволяет воспроизводить не сжатые аудиофайлы (обычно WAV-файлы) с более низкой задержкой, и подходит для звуковых эффектов "отклика" на действия пользователя (например, звуки виртуальной клавиатуры, положительная или отрицательная обратная связь для всплывающих диалоговых окон или звуки в играх). Если низкая задержка не важна, рассмотрите использование класса QMediaPlayer вместо него, поскольку он поддерживает более широкий спектр форматов медиа и потребляет меньше ресурсов.
Этот пример демонстрирует, как можно воспроизвести циклический, несколько тихий звуковой эффект:
QSoundEffect effect;
effect.setSource(QUrl::fromLocalFile("engine.wav"));
effect.setLoopCount(QSoundEffect::Infinite);
effect.setVolume(0.25f);
effect.play(); Обычно звуковой эффект должен быть повторно использован, что позволяет выполнить весь парсинг и подготовку заранее, и только активировать его при необходимости. Это способствует воспроизведению аудио с низкой задержкой.
MyGame()
: m_explosion(this)
{
m_explosion.setSource(QUrl::fromLocalFile("explosion.wav"));
m_explosion.setVolume(0.25f);
// Set up click handling etc.
connect(clickSource, &QPushButton::clicked, &m_explosion, &QSoundEffect::play);
}
private:
QSoundEffect m_explosion; Поскольку QSoundEffect требует немного больше ресурсов для достижения воспроизведения с низкой задержкой, платформа может ограничить количество одновременно воспроизводимых звуковых эффектов.
Документация по типу членов
перечисление QSoundEffect::Loop
| Константа | Значение | Описание |
|---|---|---|
QSoundEffect::Infinite |
-2 |
Используется в качестве параметра для setLoopCount() для бесконечной цикличности |
перечисление QSoundEffect::Status
| Константа | Значение | Описание |
|---|---|---|
QSoundEffect::Null |
0 |
Не задан источник или источник равен null. |
QSoundEffect::Loading |
1 |
SoundEffect пытается загрузить источник. |
QSoundEffect::Ready |
2 |
Источник загружен и готов к воспроизведению. |
QSoundEffect::Error |
3 |
Во время операции произошла ошибка, например, при загрузке источника. |
Документация свойств
category : QString
Это свойство содержит категорию этого звукового эффекта.
Некоторые платформы могут выполнять разное аудио-маршрутирование для разных категорий или могут позволять пользователю устанавливать разные уровни громкости для разных категорий.
Это значение будет проигнорировано на платформах, которые не поддерживают категории аудио.
Функции доступа:
| QString | category() const |
| void | setCategory(const QString &category) |
Сигнал уведомления:
| void | categoryChanged() |
loops : int
Это свойство содержит количество повторений воспроизведения звука. Значение 0 или 1 означает, что звук будет воспроизведён один раз; установленное значение SoundEffect.Infinite включает бесконечное повторение.
Значение может быть изменено во время воспроизведения звукового эффекта, в этом случае оставшиеся повторения будут обновлены до нового значения.
Функции доступа:
| int | loopCount() const |
| void | setLoopCount(int loopCount) |
Сигнал уведомления:
| void | loopCountChanged() |
loopsRemaining : const int
Это свойство содержит количество оставшихся повторений, прежде чем звуковой эффект остановится сам, или QSoundEffect::Infinite, если это было установлено в свойстве loops.
Функции доступа:
| int | loopsRemaining() const |
Сигнал уведомления:
| void | loopsRemainingChanged() |
muted : bool
Это свойство позволяет управлять отключением звука. Значение true отключит этот эффект.
Функции доступа:
| bool | isMuted() const |
| void | setMuted(bool muted) |
Сигнал уведомления:
| void | mutedChanged() |
playing : const bool
Это свойство указывает, воспроизводится ли звуковой эффект.
Функции доступа:
| bool | isPlaying() const |
Сигнал уведомления:
| void | playingChanged() |
source : QUrl
Это свойство содержит URL для звука, который необходимо воспроизвести. Для загрузки источника SoundEffect URL должен существовать, и приложение должно иметь права на чтение в указанном каталоге.
Функции доступа:
| QUrl | source() const |
| void | setSource(const QUrl &url) |
Сигнал уведомления:
| void | sourceChanged() |
status : const Status
Это свойство указывает текущий статус звукового эффекта из перечисления QSoundEffect::Status.
Функции доступа:
| QSoundEffect::Status | status() const |
Сигнал уведомления:
| void | statusChanged() |
volume : qreal
Это свойство содержит громкость воспроизведения звукового эффекта, от 0.0 (тишина) до 1.0 (полная громкость).
Функции доступа:
| qreal | volume() const |
| void | setVolume(qreal volume) |
Сигнал уведомления:
| void | volumeChanged() |
Документация функций-членов
QSoundEffect::QSoundEffect(const QAudioDeviceInfo &audioDevice, QObject *parent = nullptr)
Создаёт QSoundEffect с заданным audioDevice и parent.
QSoundEffect::QSoundEffect(QObject *parent = nullptr)
Создаёт QSoundEffect с заданным parent.
[signal] void QSoundEffect::categoryChanged()
Сигнал categoryChanged генерируется, когда свойство category было изменено.
Примечание: Сигнал уведомления для свойства category.
[signal] void QSoundEffect::loadedChanged()
Сигнал loadedChanged генерируется, когда состояние загрузки изменилось.
[signal] void QSoundEffect::loopCountChanged()
Сигнал loopCountChanged генерируется, когда начальное количество повторений изменилось.
Примечание: Сигнал уведомления для свойства loops.
[signal] void QSoundEffect::loopsRemainingChanged()
Сигнал loopsRemainingChanged генерируется, когда количество оставшихся повторений изменилось.
Примечание: Сигнал уведомления для свойства loopsRemaining.
[signal] void QSoundEffect::mutedChanged()
Сигнал mutedChanged генерируется, когда состояние отключения звука изменилось.
Примечание: Сигнал уведомления для свойства muted.
[slot] void QSoundEffect::play()
Начать воспроизведение звукового эффекта, повторяя его заданное количество раз, как указано в свойстве loops.
[signal] void QSoundEffect::playingChanged()
Сигнал playingChanged генерируется, когда свойство playing изменилось.
Примечание: Сигнал уведомления для свойства playing.
[signal] void QSoundEffect::sourceChanged()
Сигнал sourceChanged генерируется, когда источник был изменён.
Примечание: Сигнал уведомления для свойства source.
[signal] void QSoundEffect::statusChanged()
Сигнал statusChanged генерируется, когда свойство status изменилось.
Примечание: Сигнал уведомления для свойства status.
[slot] void QSoundEffect::stop()
Остановить текущее воспроизведение.
[signal] void QSoundEffect::volumeChanged()
Сигнал volumeChanged генерируется при изменении громкости.
Примечание: Сигнал уведомления для свойства громкости.
[virtual] QSoundEffect::~QSoundEffect()
Уничтожает этот звуковой эффект.
QString QSoundEffect::category() const
Возвращает текущую категорию для этого звукового эффекта.
Некоторые платформы могут выполнять различное аудио-маршрутирование для разных категорий или могут позволять пользователю устанавливать разные уровни громкости для разных категорий.
Это значение будет проигнорировано на платформах, которые не поддерживают категории аудио.
Примечание: Функция-получатель для свойства category.
См. также setCategory().
bool QSoundEffect::isLoaded() const
Возвращает значение, указывающее, загрузил ли звуковой эффект источник source().
bool QSoundEffect::isMuted() const
Возвращает значение, указывающее, заглушен ли этот звуковой эффект.
Примечание: Функция-получатель для свойства muted.
bool QSoundEffect::isPlaying() const
Возвращает true, если звуковой эффект воспроизводится в данный момент, и false в противном случае.
Примечание: Функция-получатель для свойства playing.
int QSoundEffect::loopCount() const
Возвращает общее количество раз, которое этот звуковой эффект будет воспроизведён до остановки.
См. метод loopsRemaining() для получения количества оставшихся циклов.
Примечание: Функция-получатель для свойства loops.
См. также setLoopCount().
void QSoundEffect::setCategory(const QString &category)
Устанавливает категорию этого звукового эффекта на category.
Некоторые платформы могут выполнять различное аудио-маршрутирование для разных категорий или могут позволять пользователю устанавливать разные уровни громкости для разных категорий.
Это значение будет проигнорировано на платформах, которые не поддерживают категории аудио.
Если это значение изменено во время воспроизведения звукового эффекта, оно будет применено только после остановки воспроизведения.
Примечание: Функция-установщик для свойства category.
См. также category().
void QSoundEffect::setLoopCount(int loopCount)
Устанавливает общее количество воспроизведений этого звукового эффекта на loopCount.
Установление значения loop count на 0 или 1 означает, что звуковой эффект будет воспроизведён только один раз; передайте QSoundEffect::Infinite для неограниченного повторения. Значение loop count можно изменять во время воспроизведения звукового эффекта, в этом случае оставшиеся циклы будут обновлены до нового loopCount.
Примечание: Функция-установщик для свойства loops.
См. также loopCount() и loopsRemaining().
void QSoundEffect::setMuted(bool muted)
Устанавливает, заглушать ли воспроизведение этого звукового эффекта.
Если muted равно true, воспроизведение будет заглушено, в противном случае воспроизведение будет происходить с текущим заданным значением громкости.
Примечание: Функция-установщик для свойства muted.
См. также isMuted().
void QSoundEffect::setSource(const QUrl &url)
Установить текущий URL для воспроизведения на url.
Примечание: Функция-установщик для свойства source.
См. также source().
void QSoundEffect::setVolume(qreal volume)
Устанавливает громкость звукового эффекта на volume.
Громкость масштабируется линейно от 0.0 (тишина) до 1.0 (полная громкость). Значения вне этого диапазона будут ограничены.
По умолчанию громкость равна 1.0.
Уровни громкости в пользовательском интерфейсе обычно должны масштабироваться нелинейно. Например, использование логарифмической шкалы обеспечит линейные изменения в воспринимаемой громкости, что обычно ожидается от регулятора громкости. Более подробную информацию см. в QAudio::convertVolume().
Примечание: Функция-установщик для свойства volume.
См. также volume().
QUrl QSoundEffect::source() const
Возвращает URL текущего источника для воспроизведения.
Примечание: Функция-получатель для свойства source.
См. также setSource().
QSoundEffect::Status QSoundEffect::status() const
Возвращает текущий статус этого звукового эффекта.
Примечание: Функция-получатель для свойства status.
[static] QStringList QSoundEffect::supportedMimeTypes()
Возвращает список поддерживаемых типов MIME для этой платформы.
qreal QSoundEffect::volume() const
Возвращает текущую громкость этого звукового эффекта от 0.0 (тишина) до 1.0 (максимальная громкость).
Примечание: Функция-получатель для свойства volume.
См. также setVolume().
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-5.15/qsoundeffect.html