Класс QSoundEffect
Класс QSoundEffect предоставляет способ воспроизведения звуковых эффектов с низкой задержкой. Подробнее...
| Заголовок: | #include <QSoundEffect> |
| CMake: | find_package(Qt6 COMPONENTS Multimedia REQUIRED) target_link_libraries(mytarget PRIVATE Qt6::Multimedia) |
| qmake: | QT += multimedia |
| Создаётся из: | SoundEffect |
| Наследует: | QObject |
Типы публичного доступа
| Перечисление | Loop { Бесконечно } |
| Перечисление | Состояние { Пусто, Загрузка, Готово, Ошибка } |
Свойства
|
Публичные функции
| QSoundEffect(const QAudioDevice &audioDevice, QObject *parent = nullptr) | |
| QSoundEffect(QObject *parent = nullptr) | |
| virtual | ~QSoundEffect() |
| QAudioDevice | audioDevice() |
| bool | isLoaded() const |
| bool | isMuted() const |
| bool | isPlaying() const |
| int | loopCount() const |
| int | оставшиеся_циклы() const |
| void | setAudioDevice(const QAudioDevice &device) |
| void | setLoopCount(int loopCount) |
| void | setMuted(bool muted) |
| void | setSource(const QUrl &url) |
| void | setVolume(float volume) |
| QUrl | source() const |
| QSoundEffect::Состояние | status() const |
| float | volume() const |
Публичные слоты
| void | play() |
| void | stop() |
Сигналы
| void | audioDeviceChanged() |
| 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 |
Произошла ошибка во время операции, например, при загрузке источника. |
Документация свойств
loops : int
Это свойство хранит количество раз, которое воспроизводится звук. Значение 0 или 1 означает, что звук будет воспроизведён только один раз; установите SoundEffect.Infinite для бесконечного циклического воспроизведения.
Значение может быть изменено во время воспроизведения звукового эффекта, в этом случае оставшиеся циклы будут обновлены до нового значения.
Функции доступа:
| int | loopCount() const |
| void | setLoopCount(int loopCount) |
Сигнал уведомления:
| void | loopCountChanged() |
[read-only] loopsRemaining : const int
Это свойство содержит количество оставшихся циклов перед тем, как звуковой эффект остановится сам по себе, или QSoundEffect::Infinite, если это было установлено в loops.
Функции доступа:
| int | loopsRemaining() const |
Сигнал уведомления:
| void | loopsRemainingChanged() |
muted : bool
Это свойство предоставляет возможность управления отключением звука. Значение true отключит этот эффект.
Функции доступа:
| bool | isMuted() const |
| void | setMuted(bool muted) |
Сигнал уведомления:
| void | mutedChanged() |
[read-only] playing : const bool
Это свойство указывает, воспроизводится ли звуковой эффект или нет.
Функции доступа:
| bool | isPlaying() const |
Сигнал уведомления:
| void | playingChanged() |
source : QUrl
Это свойство содержит URL для воспроизведения звука. Для того, чтобы SoundEffect пытался загрузить источник, URL должен существовать, и приложение должно иметь права на чтение в указанном каталоге.
Функции доступа:
| QUrl | source() const |
| void | setSource(const QUrl &url) |
Сигнал уведомления:
| void | sourceChanged() |
[read-only] status : const Status
Это свойство указывает текущий статус звукового эффекта из перечисления QSoundEffect::Status.
Функции доступа:
| QSoundEffect::Status | status() const |
Сигнал уведомления:
| void | statusChanged() |
volume : float
Это свойство хранит громкость воспроизведения звукового эффекта от 0.0 (тишина) до 1.0 (полная громкость).
Функции доступа:
| float | volume() const |
| void | setVolume(float volume) |
Сигнал уведомления:
| void | volumeChanged() |
Документация по функциям-членам
QSoundEffect::QSoundEffect(const QAudioDevice &audioDevice, QObject *parent = nullptr)
Создаёт QSoundEffect с заданным audioDevice и parent.
QSoundEffect::QSoundEffect(QObject *parent = nullptr)
Создаёт QSoundEffect с заданным parent.
[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 генерируется, когда громкость изменилась.
Примечание: Сигнал уведомления для свойства volume.
[virtual] QSoundEffect::~QSoundEffect()
Уничтожает этот звуковой эффект.
bool QSoundEffect::isLoaded() const
Возвращает true, если звуковой эффект завершил загрузку source(), иначе false.
bool QSoundEffect::isMuted() const
Возвращает true, если этот звуковой эффект отключен от звука, иначе false.
Примечание: Функция-получатель для свойства muted.
bool QSoundEffect::isPlaying() const
Возвращает true, если звуковой эффект в данный момент воспроизводится, или false в противном случае.
Примечание: Функция-получатель для свойства playing.
int QSoundEffect::loopCount() const
Возвращает общее количество раз, которое этот звуковой эффект будет воспроизведён, прежде чем остановится.
См. метод loopsRemaining() для количества циклов, которые в настоящее время остаются.
Примечание: Функция-получатель для свойства loops.
См. также setLoopCount().
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(float 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 для этой платформы.
float 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-6.2/qsoundeffect.html