QtAudio 名称空间包含用于音频类的枚举。 更多...
| 头: |
#include <QtAudio>
|
| CMake: |
find_package(Qt6 REQUIRED COMPONENTS Multimedia)
target_link_libraries(mytarget PRIVATE Qt6::Multimedia)
|
| qmake: |
QT += multimedia
|
| enum | Error { NoError, OpenError, IOError, UnderrunError, FatalError } |
| enum | State { ActiveState, SuspendedState, StoppedState, IdleState } |
| enum | VolumeScale { LinearVolumeScale, CubicVolumeScale, LogarithmicVolumeScale, DecibelVolumeScale } |
| float | convertVolume (float volume , QtAudio::VolumeScale from , QtAudio::VolumeScale to ) |
| 常量 | 值 | 描述 |
|---|---|---|
QtAudio::NoError
|
0
|
没有出现错误 |
QtAudio::OpenError
|
1
|
打开音频设备时,出现错误 |
QtAudio::IOError
|
2
|
读/写音频设备时,出现错误 |
QtAudio::UnderrunError
|
3
|
未以足够快的速率,把音频数据喂给音频设备 |
QtAudio::FatalError
|
4
|
出现不可恢复错误,音频设备此时不可用。 |
| 常量 | 值 | 描述 |
|---|---|---|
QtAudio::ActiveState
|
0
|
正处理音频数据,此状态是在调用 start() 后设置的,且音频数据同时可用于处理。 |
QtAudio::SuspendedState
|
1
|
音频流处于挂起状态。在调用 suspend() 后 (或当另一流控制音频设备时),进入。在后一情况下,对 resume 的调用将把音频设备的控制返回给此流。通常,这只应在用户请求时进行。 |
QtAudio::StoppedState
|
2
|
关闭音频设备,且不处理任何音频数据 |
QtAudio::IdleState
|
3
|
The QIODevice 传入没有数据且音频系统的缓冲为空,此状态在调用 start() 后设置,且同时没有音频数据可用于处理。 |
此枚举定义不同音频音量的比例缩放。
| 常量 | 值 | 描述 |
|---|---|---|
QtAudio::LinearVolumeScale
|
0
|
线性比例缩放。
0.0
(0%) 为无声而
1.0
(100%) 为全音量。所有拥有音频的 Qt Multimedia 类,音量使用线性比例缩放。
|
QtAudio::CubicVolumeScale
|
1
|
立方比例缩放。
0.0
(0%) 为无声而
1.0
(100%) 为全音量。
|
QtAudio::LogarithmicVolumeScale
|
2
|
对数比例缩放。
0.0
(0%) 为无声而
1.0
(100%) 为全音量。通常,UI 音量控制应使用对数比例缩放。
|
QtAudio::DecibelVolumeScale
|
3
|
分贝 (dB、振幅) 对数比例缩放。
-200
为无声而
0
为全音量。
|
另请参阅 QtAudio::convertVolume ().
转换音频 volume from 音量比例缩放 to 另一,并返回结果。
从属上下文,表示音频音量是使用不同刻度。所有拥有音频音量的 Qt Multimedia 类都使用线性刻度,原因是扬声器响度是通过线性刻度调制其电压来控制的。另一方面,人的耳朵以对数方式感知响度。因此,在大多数应用程序中,音量控制使用对数刻度很合适。分贝刻度本质上是对数的,且常用于定义声明级别,通常用于专业音频应用程序 UI 音量控制。立方刻度是对数刻度的便宜计算近似,它提供对较低音量级别的更多控制。
以下范例展示如何从滑块控件转换音量值,先于把它传递给 QMediaPlayer 。因此,感知音量递增一样,当把音量滑块从 20 递增到 30 时,就像从 50 到 60:
void applyVolume(int volumeSliderValue) { // volumeSliderValue is in the range [0..100] qreal linearVolume = QtAudio::convertVolume(volumeSliderValue / qreal(100.0), QtAudio::LogarithmicVolumeScale, QtAudio::LinearVolumeScale); player.setVolume(qRound(linearVolume * 100)); }
另请参阅 VolumeScale , QAudioSink::setVolume (), QAudioSource::setVolume (),和 QSoundEffect::setVolume ().