本页内容

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

信号

详细说明

为空间音频引擎定义一个房间。

如果听众位于房间内,则会根据房间属性将一阶声音反射和混响应用于声场。

房间总是正方形的,由其中心位置、方向和尺寸定义。房间的 6 面墙壁可以由不同的材料制成,这些材料将影响听众在房间内所体验到的计算出的反射和混响。

如果多个房间覆盖同一位置,引擎将使用体积最小的房间。

成员类型文档

enum QAudioRoom::Material

定义了可应用于房间不同墙面上的各种材质。

常量值描述
QAudioRoom::Transparent0房间的一侧是开放的,不会产生反射或混响。
QAudioRoom::AcousticCeilingTiles1可抑制大部分反射和混响的吸音板。
QAudioRoom::BrickBare2裸露的砖墙。
QAudioRoom::BrickPainted3涂过漆的砖墙。
QAudioRoom::ConcreteBlockCoarse4未处理的混凝土墙
QAudioRoom::ConcreteBlockPainted5涂漆混凝土墙
QAudioRoom::CurtainHeavy6厚重窗帘。主要会反射低频
QAudioRoom::FiberGlassInsulation7玻璃纤维隔热层。仅反射极低频
QAudioRoom::GlassThin8薄玻璃墙
QAudioRoom::GlassThick9厚玻璃墙
QAudioRoom::Grass10草地
QAudioRoom::LinoleumOnConcrete11油毡地板
QAudioRoom::Marble12大理石地板
QAudioRoom::Metal13金属
QAudioRoom::ParquetOnConcrete14铺设在混凝土上的木质拼花地板
QAudioRoom::PlasterRough15粗糙抹灰
QAudioRoom::PlasterSmooth16光滑抹灰
QAudioRoom::PlywoodPanel17胶合板
QAudioRoom::PolishedConcreteOrTile18抛光混凝土或瓷砖
QAudioRoom::Sheetrock19岩石
QAudioRoom::WaterOrIceSurface20水或冰
QAudioRoom::WoodCeiling21木质天花板
QAudioRoom::WoodPanel22木质镶板
QAudioRoom::UniformMaterial23在所有频率下均能产生均匀反射的人造材料

enum QAudioRoom::Wall

一个定义房间6面墙的枚举

常量值描述
QAudioRoom::LeftWall0左侧墙(负x)
QAudioRoom::RightWall1右侧墙(正x)
QAudioRoom::Floor2底部壁(负y)
QAudioRoom::Ceiling3顶壁(正 y 轴)
QAudioRoom::FrontWall4前壁(负z轴)
QAudioRoom::BackWall5后壁(正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.