Класс QSoundEffect
Класс QSoundEffect предоставляет способ воспроизведения звуковых эффектов с низкой задержкой. Подробнее...
| Заголовок: | #include <QSoundEffect> |
| qmake: | QT += multimedia |
| Создаётся из: | SoundEffect |
| Наследует: | QObject |
Типы
| Перечисление | Loop { Бесконечно } |
| Перечисление | Статус { Нулевой, Загрузка, Готово, Ошибка } |
Свойства
|
Открытые функции
| QSoundEffect(const QAudioDeviceInfo &audioDevice, QObject *parent = nullptr) | |
| QSoundEffect(QObject *parent = nullptr) | |
| виртуальный | ~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() 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.
[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.
[signal] void QSoundEffect::sourceChanged()
Сигнал sourceChanged излучается, когда источник был изменён.
Примечание: Сигнал уведомления для свойства source.
[signal] void QSoundEffect::statusChanged()
Сигнал statusChanged излучается, когда свойство статуса изменилось.
Примечание: Сигнал уведомления для свойства status.
[slot] void QSoundEffect::stop()
Остановить текущее воспроизведение.
END_OF_DOCUMENT_MARKER
[signal] void QSoundEffect::volumeChanged()
Сигнал volumeChanged генерируется при изменении громкости.
Примечание: Сигнал уведомления для свойства volume.
[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.
Установка значения повторов 0 или 1 означает, что звуковой эффект будет воспроизведён только один раз; передайте QSoundEffect::Infinite для бесконечного повтора. Количество повторов можно изменить во время воспроизведения звукового эффекта, в этом случае оставшиеся повторы будут обновлены до нового значения loopCount.
Примечание: Функция-установщик для свойства loops.
См. также loopCount() и loopsRemaining().
void QSoundEffect::setMuted(bool muted)
Устанавливает значение, указывающее, нужно ли заглушить воспроизведение этого звукового эффекта.
Если muted имеет значение true, воспроизведение будет заглушено (отключено звук), а в противном случае воспроизведение будет происходить с текущим заданным значением volume.
Примечание: Функция-установщик для свойства 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.13/qsoundeffect.html