Класс QSoundEffect
Класс QSoundEffect предоставляет способ воспроизведения звуковых эффектов с низкой задержкой. Подробнее...
| Заголовок: | #include <QSoundEffect> |
| qmake: | QT += multimedia |
| Инициализируется: | SoundEffect |
| Наследует: | QObject |
Открытые типы
| Перечисление | Loop { Infinite } |
| Перечисление | Статус { 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 | оставшиесяЦиклы() 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::Статус
| Константа | Значение | Описание |
|---|---|---|
QSoundEffect::Null |
0 |
Источник не задан или он пуст. |
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
Возвращает, завершил ли звуковой эффект загрузку источника.
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.
Установка значения loopCount в 0 или 1 означает, что звуковой эффект будет воспроизведён только один раз; передайте QSoundEffect::Infinite для бесконечного повтора. Количество повторений может быть изменено во время воспроизведения звукового эффекта, в этом случае оставшиеся повторения будут обновлены до нового значения 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.14/qsoundeffect.html