QAudioRoom Class
| 标题: | #include <QAudioRoom> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS SpatialAudio) target_link_libraries(mytarget PRIVATE Qt6::SpatialAudio) |
| qmake: | QT += spatialaudio |
| 继承自: | QObject |
公共类型
| enum | Material { Transparent, AcousticCeilingTiles, BrickBare, BrickPainted, ConcreteBlockCoarse, …, UniformMaterial } |
| enum | Wall { LeftWall, RightWall, Floor, Ceiling, FrontWall, BackWall } |
属性
|
|
公共函数
| QAudioRoom(QAudioEngine *engine) | |
| virtual | ~QAudioRoom() override |
| QVector3D | dimensions() const |
| QVector3D | position() const |
| float | reflectionGain() const |
| float | reverbBrightness() const |
| float | reverbGain() const |
| float | reverbTime() const |
| QQuaternion | rotation() const |
| void | setDimensions(QVector3D dim) |
| void | setPosition(QVector3D pos) |
| void | setReflectionGain(float factor) |
| void | setReverbBrightness(float factor) |
| void | setReverbGain(float factor) |
| void | setReverbTime(float factor) |
| void | setRotation(const QQuaternion &q) |
| void | setWallMaterial(QAudioRoom::Wall wall, QAudioRoom::Material material) |
| QAudioRoom::Material | wallMaterial(QAudioRoom::Wall wall) const |
信号
| void | dimensionsChanged() |
| void | positionChanged() |
| void | reflectionGainChanged() |
| void | reverbBrightnessChanged() |
| void | reverbGainChanged() |
| void | reverbTimeChanged() |
| void | rotationChanged() |
| void | wallsChanged() |
详细说明
为空间音频引擎定义一个房间。
如果听众位于房间内,则会根据房间属性将一阶声音反射和混响应用于声场。
房间总是正方形的,由其中心位置、方向和尺寸定义。房间的 6 面墙壁可以由不同的材料制成,这些材料将影响听众在房间内所体验到的计算出的反射和混响。
如果多个房间覆盖同一位置,引擎将使用体积最小的房间。
成员类型文档
enum QAudioRoom::Material
定义了可应用于房间不同墙面上的各种材质。
| 常量 | 值 | 描述 |
|---|---|---|
QAudioRoom::Transparent | 0 | 房间的一侧是开放的,不会产生反射或混响。 |
QAudioRoom::AcousticCeilingTiles | 1 | 可抑制大部分反射和混响的吸音板。 |
QAudioRoom::BrickBare | 2 | 裸露的砖墙。 |
QAudioRoom::BrickPainted | 3 | 涂过漆的砖墙。 |
QAudioRoom::ConcreteBlockCoarse | 4 | 未处理的混凝土墙 |
QAudioRoom::ConcreteBlockPainted | 5 | 涂漆混凝土墙 |
QAudioRoom::CurtainHeavy | 6 | 厚重窗帘。主要会反射低频 |
QAudioRoom::FiberGlassInsulation | 7 | 玻璃纤维隔热层。仅反射极低频 |
QAudioRoom::GlassThin | 8 | 薄玻璃墙 |
QAudioRoom::GlassThick | 9 | 厚玻璃墙 |
QAudioRoom::Grass | 10 | 草地 |
QAudioRoom::LinoleumOnConcrete | 11 | 油毡地板 |
QAudioRoom::Marble | 12 | 大理石地板 |
QAudioRoom::Metal | 13 | 金属 |
QAudioRoom::ParquetOnConcrete | 14 | 铺设在混凝土上的木质拼花地板 |
QAudioRoom::PlasterRough | 15 | 粗糙抹灰 |
QAudioRoom::PlasterSmooth | 16 | 光滑抹灰 |
QAudioRoom::PlywoodPanel | 17 | 胶合板 |
QAudioRoom::PolishedConcreteOrTile | 18 | 抛光混凝土或瓷砖 |
QAudioRoom::Sheetrock | 19 | 岩石 |
QAudioRoom::WaterOrIceSurface | 20 | 水或冰 |
QAudioRoom::WoodCeiling | 21 | 木质天花板 |
QAudioRoom::WoodPanel | 22 | 木质镶板 |
QAudioRoom::UniformMaterial | 23 | 在所有频率下均能产生均匀反射的人造材料 |
enum QAudioRoom::Wall
一个定义房间6面墙的枚举
| 常量 | 值 | 描述 |
|---|---|---|
QAudioRoom::LeftWall | 0 | 左侧墙(负x) |
QAudioRoom::RightWall | 1 | 右侧墙(正x) |
QAudioRoom::Floor | 2 | 底部壁(负y) |
QAudioRoom::Ceiling | 3 | 顶壁(正 y 轴) |
QAudioRoom::FrontWall | 4 | 前壁(负z轴) |
QAudioRoom::BackWall | 5 | 后壁(正z轴) |
属性文档
dimensions : QVector3D
定义房间在三维空间中的尺寸。默认单位为厘米。
访问函数:
| QVector3D | dimensions() const |
| void | setDimensions(QVector3D dim) |
通知信号:
| void | dimensionsChanged() |
另请参阅 position 和QAudioEngine::distanceScale 。
position : QVector3D
定义房间中心在三维空间中的位置。默认单位为厘米。
访问函数:
| QVector3D | position() const |
| void | setPosition(QVector3D pos) |
通知信号:
| void | positionChanged() |
另请参阅 dimensions 和QAudioEngine::distanceScale 。
reflectionGain : float
该房间内产生的反射声的增益系数。0 到 1 之间的数值会衰减反射声,而大于 1 的数值会对反射声进行增益处理,使其声音更响。
默认值为 1,系数为 0 时将禁用反射。负值将被映射为 0。
访问函数:
| float | reflectionGain() const |
| void | setReflectionGain(float factor) |
通知信号:
| void | reflectionGainChanged() |
reverbBrightness : float
应用于生成的混响的亮度系数。正值会增强高频的混响并削弱低频,负值则效果相反。
默认值为 0。
访问函数:
| float | reverbBrightness() const |
| void | setReverbBrightness(float factor) |
通知信号:
| void | reverbBrightnessChanged() |
reverbGain : float
此房间中生成的混响的增益系数。0 到 1 之间的值会减弱混响,而大于 1 的值会为混响增加增益,使其声音更响。
默认值为 1,系数为 0 时将禁用混响。负值将被映射为 0。
访问函数:
| float | reverbGain() const |
| void | setReverbGain(float factor) |
通知信号:
| void | reverbGainChanged() |
reverbTime : float
该因子适用于为该房间生成的所有混响时长。数值越大,混响时长越长,使房间听起来更宽敞。
默认值为 1。负值将被映射为 0。
访问函数:
| float | reverbTime() const |
| void | setReverbTime(float factor) |
通知信号:
| void | reverbTimeChanged() |
rotation : QQuaternion
定义房间在三维空间中的方向。
访问函数:
| QQuaternion | rotation() const |
| void | setRotation(const QQuaternion &q) |
通知信号:
| void | rotationChanged() |
成员函数文档
[explicit] QAudioRoom::QAudioRoom(QAudioEngine *engine)
为engine 构建一个QAudioRoom。
注意: 调用时必须 传入一个有效的QAudioEngine
[override virtual noexcept] QAudioRoom::~QAudioRoom()
把房间搞得一团糟。
void QAudioRoom::setWallMaterial(QAudioRoom::Wall wall, QAudioRoom::Material material)
将wall 设置为material 。
不同的墙面材料具有不同的反射和混响特性,这些特性会影响房间的声学效果。
另请参阅 wallMaterial()、Material 以及QAudioRoom::Wall 。
QAudioRoom::Material QAudioRoom::wallMaterial(QAudioRoom::Wall wall) const
返回wall 所使用的素材。
另请参阅 setWallMaterial()、Material 以及QAudioRoom::Wall 。
[signal] void QAudioRoom::wallsChanged()
当墙体材料发生变化时发出信号。
© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.