Spec-Zone.ru › Qt

Класс QSoundEffect

Класс QSoundEffect предоставляет способ воспроизведения звуковых эффектов с низкой задержкой. Подробнее...

Заголовок: #include <QSoundEffect>
CMake: find_package(Qt6 COMPONENTS Multimedia REQUIRED) target_link_libraries(mytarget PRIVATE Qt6::Multimedia)
qmake: QT += multimedia
Создаётся из: SoundEffect
Наследует: QObject
  • Список всех членов, включая наследуемые

Типы публичного доступа

Перечисление Loop { Бесконечно }
Перечисление Состояние { Пусто, Загрузка, Готово, Ошибка }

Свойства

  • loops : int
  • оставшиеся_циклы : const int
  • выключен : bool
  • воспроизведение : const bool
  • источник : QUrl
  • состояние : const Состояние
  • громкость : float

Публичные функции

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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API