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
|
An error occurred during read/write of audio device. This can happen when e.g. an external audio interface is disconnected. |
QtAudio::UnderrunError
|
3
|
未以足够快的速率,把音频数据喂给音频设备 |
QtAudio::FatalError
|
4
|
出现不可恢复错误,音频设备此时不可用。 |
| 常量 | 值 | 描述 |
|---|---|---|
QtAudio::ActiveState
|
0
|
正处理音频数据,此状态是在调用 start() 后设置的,且音频数据同时可用于处理。 |
QtAudio::SuspendedState
|
1
|
音频流处于挂起状态。在调用 suspend() 后 (或当另一流控制音频设备时),进入。在后一情况下,对 resume 的调用将把音频设备的控制返回给此流。通常,这只应在用户请求时进行。 |
QtAudio::StoppedState
|
2
|
关闭音频设备,且不处理任何音频数据 |
QtAudio::IdleState
|
3
|
This state indicates that the audio system is temporarily idle due to a buffering condition. For a QAudioSink , IdleState means there isn’t enough data available from the QIODevice to read. For a QAudioSource , IdleState is entered when the ring buffer that feeds the QIODevice becomes full. In that case, any new audio data arriving from the audio interface is discarded until the application reads from the QIODevice , which frees up space in the buffer. |
此枚举定义不同音频音量的比例缩放。
| 常量 | 值 | 描述 |
|---|---|---|
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 ().