Spec-Zone.ru › Qt

Пространство имён QAudio

Пространство имён QAudio содержит перечисления, используемые классами аудио. Подробнее...

Заголовок: #include <QAudio>
CMake: find_package(Qt6 COMPONENTS Multimedia REQUIRED) target_link_libraries(mytarget PRIVATE Qt6::Multimedia)
qmake: QT += multimedia

Типы

Перечисление Error { НетОшибки, ОшибкаОткрытия, ОшибкаВводаВывода, ОшибкаНехваткиДанных, КритическаяОшибка }
Перечисление State { АктивноеСостояние, ПриостановленноеСостояние, ОстановленноеСостояние, СостояниеОжидания }
Перечисление VolumeScale { ЛинейнаяШкалаГромкости, КубическаяШкалаГромкости, ЛогарифмическаяШкалаГромкости, ШкалаГромкостиДецибел }

Функции

float convertVolume(float volume, QAudio::VolumeScale from, QAudio::VolumeScale to)

Подробное описание

Документация по типам

Перечисление QAudio::Error

Постоянная Значение Описание
QAudio::NoError 0 Ошибок не произошло
QAudio::OpenError 1 Произошла ошибка при открытии аудиоустройства
QAudio::IOError 2 Произошла ошибка во время чтения/записи аудиоустройства
QAudio::UnderrunError 3 Аудиоданные не подаются на аудиоустройство достаточно быстро
QAudio::FatalError 4 Произошла неисправимая ошибка, аудиоустройство в данный момент непригодно для использования.

Перечисление QAudio::State

Постоянная Значение Описание
QAudio::ActiveState 0 Аудиоданные обрабатываются; это состояние устанавливается после вызова start() и пока доступны аудиоданные для обработки.
QAudio::SuspendedState 1 Поток аудио приостановлен. Устанавливается после вызова suspend() или когда другой поток получает контроль над аудиоустройством. В последнем случае вызов resume вернёт контроль над аудиоустройством этому потоку. Это обычно делается только по запросу пользователя.
QAudio::StoppedState 2 Аудиоустройство закрыто и не обрабатывает какие-либо аудиоданные.
QAudio::IdleState 3 Переданный QIODevice не содержит данных, а буфер аудиосистемы пуст; это состояние устанавливается после вызова start() и пока аудиоданные недоступны для обработки.

Перечисление QAudio::VolumeScale

Это перечисление определяет различные шкалы громкости аудио.

Постоянная Значение Описание
QAudio::LinearVolumeScale 0 Линейная шкала. 0.0 (0%) — тишина, 1.0 (100%) — полная громкость. Все классы Qt Multimedia, имеющие аудиогромкость, используют линейную шкалу.
QAudio::CubicVolumeScale 1 Кубическая шкала. 0.0 (0%) — тишина, 1.0 (100%) — полная громкость.
QAudio::LogarithmicVolumeScale 2 Логарифмическая шкала. 0.0 (0%) — тишина, 1.0 (100%) — полная громкость. Управлять громкостью в пользовательском интерфейсе обычно следует с использованием логарифмической шкалы.
QAudio::DecibelVolumeScale 3 Логарифмическая шкала децибел (дБ, амплитуда). -200 — тишина, 0 — полная громкость.

См. также QAudio::convertVolume().

Документация по функциям

float QAudio::convertVolume(float volume, QAudio::VolumeScale from, QAudio::VolumeScale to)

Преобразует аудиогромкость из одной шкалы громкости в другую и возвращает результат.

В зависимости от контекста для представления аудиогромкости используются разные шкалы. Все классы Qt Multimedia, имеющие аудиогромкость, используют линейную шкалу; причина в том, что громкость динамика регулируется модуляцией напряжения на линейной шкале. Человеческое ухо, с другой стороны, воспринимает громкость логарифмически. Поэтому в большинстве приложений целесообразно использовать логарифмическую шкалу для управления громкостью. Шкала децибел по своей природе является логарифмической и обычно используется для определения уровней звука; она обычно используется для управления громкостью в пользовательском интерфейсе профессиональных аудиоприложений. Кубическая шкала — вычислительно недорогое приближение логарифмической шкалы; она обеспечивает больший контроль над низкими уровнями громкости.

Следующий пример показывает, как преобразовать значение громкости с ползунка управления перед передачей его в QMediaPlayer. В результате воспринимаемое увеличение громкости при увеличении ползунка громкости с 20 до 30 такое же, как и при увеличении с 50 до 60:

void applyVolume(int volumeSliderValue)
{
    // volumeSliderValue is in the range [0..100]

    qreal linearVolume = QAudio::convertVolume(volumeSliderValue / qreal(100.0),
                                               QAudio::LogarithmicVolumeScale,
                                               QAudio::LinearVolumeScale);

    player.setVolume(qRound(linearVolume * 100));
}

См. также VolumeScale, QAudioSink::setVolume(), QAudioSource::setVolume() и QSoundEffect::setVolume().

© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-6.2/qaudio.html

Spec-Zone.ru

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