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
定义房间在 3D 空间中的朝向。
访问功能:
QQuaternion | rotation() const |
void | setRotation(const QQuaternion &q) |
通知信号
void | rotationChanged() |
成员函数 文档
[explicit]
QAudioRoom::QAudioRoom(QAudioEngine *engine)
为engine 构建一个 QAudioRoom。
[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()
墙壁材料发生变化时发出信号。
© 2025 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.