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()

另请参阅 positionQAudioEngine::distanceScale

position : QVector3D

定义房间中心在三维空间中的位置。默认单位为厘米。

访问功能:

QVector3D position() const
void setPosition(QVector3D pos)

通知信号:

void positionChanged()

另请参阅 dimensionsQAudioEngine::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.