QSpatialSound类

3D空间中的声音对象。 更多信息...

头文件 #include <QSpatialSound>
CMakefind_package(Qt6 REQUIRED COMPONENTS SpatialAudio)
target_link_libraries(mytarget PRIVATE Qt6::SpatialAudio)
qmakeQT += spatialaudio
继承 QObject

公共类型

枚举类型DistanceModel { 对数,线性,手动衰减 }
枚举Loops { 无限,一次 }

属性

公共函数

QSpatialSound(QAudioEngine *engine)
virtual~QSpatialSound()
boolautoPlay() const
floatdirectivity() const
floatdirectivityOrder() const
floatdistanceCutoff() const
QSpatialSound::DistanceModeldistanceModel() const
QAudioEngine *engine() const
intloops() const
floatmanualAttenuation() const
floatnearFieldGain() const
floatocclusionIntensity() const
QVector3Dposition() const
QQuaternionrotation() const
voidsetAutoPlay(bool autoPlay)
voidsetDirectivity(float alpha)
voidsetDirectivityOrder(float alpha)
voidsetDistanceCutoff(float cutoff)
voidsetDistanceModel(QSpatialSound::DistanceModel model)
voidsetLoops(int loops)
voidsetManualAttenuation(float attenuation)
voidsetNearFieldGain(float gain)
voidsetOcclusionIntensity(float occlusion)
voidsetPosition(QVector3D pos)
voidsetRotation(const QQuaternion &q)
voidsetSize(float size)
voidsetSource(const QUrl &url)
voidsetVolume(float volume)
floatsize() const
QUrlsource() const
floatvolume() const

Public Slots

voidpause()
voidplay()
voidstop()

Signals

Detailed Description

QSpatialSound表示3D空间中的可听对象。您可以定义其在空间中的位置和方向,设置它正在播放的声音以及为对象定义音量。

对象可以具有不同的衰减行为,主要向一个方向或球形地发射声音,并且就像被某个其他物体遮挡一样。

成员类型文档

enum class QSpatialSound::DistanceModel

定义了声音的音量如何随着与听者的距离而缩放。

常数描述
QSpatialSound::DistanceModel::Logarithmic0音量以对数方式随距离减小。
QSpatialSound::DistanceModel::Linear1音量以线性方式随距离减小。
QSpatialSound::DistanceModel::ManualAttenuation2衰减是通过使用manualAttenuation属性手动定义的。

enum QSpatialSound::Loops

允许您使用以下值控制声音播放循环:

常数描述
QSpatialSound::Infinite-1无限播放
QSpatialSound::Once1单次播放

属性文档

autoPlay : bool

确定当指定源时,是否应自动开始播放声音。

默认值为true

访问函数

boolautoPlay() const
voidsetAutoPlay(bool autoPlay)

通知信号

voidautoPlayChanged()

directivity : float

定义了声音源的指向性。0的值表示声音在所有方向上均匀发射,而1的值表示源主要朝前方向发射声音。

有效值在0和1之间,默认为0。

访问函数

floatdirectivity() const
voidsetDirectivity(float alpha)

通知信号

voiddirectivityChanged()

directivityOrder : float

定义声音源方向性的顺序。阶数越高意味着声音锥形定位越精确。

此属性的默认值和最小值是1。

访问函数

floatdirectivityOrder() const
voidsetDirectivityOrder(float alpha)

通知信号

voiddirectivityOrderChanged()

distanceCutoff : float

定义声音从源头发出的距离,超过此距离则不再有声。如果听众距离声物体比截止距离更远,则将无法听到。

访问函数

floatdistanceCutoff() const
voidsetDistanceCutoff(float cutoff)

通知信号

voiddistanceCutoffChanged()

distanceModel : DistanceModel

定义此声音源的距离模型。音量从size开始向下缩放至distanceCutoff。对于小于size的距离,音量为恒定值;对于大于截止距离的距离,音量为0。

访问函数

QSpatialSound::DistanceModeldistanceModel() const
voidsetDistanceModel(QSpatialSound::DistanceModel model)

通知信号

voiddistanceModelChanged()

另请参阅QSpatialSound::DistanceModel.

loops : int

确定声音在播放器停止之前播放的次数。将值设置为QSpatialSound::Infinite,则声音将一直循环播放。

默认值是1

访问函数

intloops() const
voidsetLoops(int loops)

通知信号

voidloopsChanged()

manualAttenuation : float

如果distanceModel设置为QSpatialSound::DistanceModel::ManualAttenuation,则定义手动衰减系数。

访问函数

floatmanualAttenuation() const
voidsetManualAttenuation(float attenuation)

通知信号

voidmanualAttenuationChanged()

nearFieldGain : float

定义声音源近场增益。有效值在0和1之间。近场增益为1将在非常接近听众的距离内将声音信号的音量提高约20 dB。

访问函数

floatnearFieldGain() const
voidsetNearFieldGain(float gain)

通知信号

voidnearFieldGainChanged()

occlusionIntensity : float

定义对象被遮挡的程度。0表示对象完全没有被遮挡,1表示声源完全被另一个对象遮挡。

完全被遮挡的对象仍然可以听到,但是尤其是在高频部分将减弱。此外,对象仍将参与在房间的回声和反射中。

大于1的值可以进一步减弱来自源头的直达声。

默认值是0。

访问函数

floatocclusionIntensity() const
voidsetOcclusionIntensity(float occlusion)

通知信号

voidocclusionIntensityChanged()

position : QVector3D

定义声音源在3D空间中的位置。默认单位为厘米。

访问函数

QVector3Dposition() const
voidsetPosition(QVector3D pos)

通知信号

voidpositionChanged()

另请参阅QAudioEngine::distanceScale.

旋转 : QQuaternion

定义了声音源在3D空间中的方向。

访问函数

QQuaternionrotation() const
voidsetRotation(const QQuaternion &q)

通知信号

voidrotationChanged()

大小 : float

定义了声音源的大小。如果听者比大小更接近声音对象,则音量将保持恒定。大小还用于遮挡计算,其中大源可以被墙壁部分遮挡。

访问函数

float大小() const
voidsetSize(float size)

通知信号

voidsizeChanged()

: QUrl

要播放的声音的源文件。

访问函数

QUrl() const
voidsetSource(const QUrl &url)

通知信号

voidsourceChanged()

音量 : float

定义了声音的音量。

介于0到1之间的值会衰减声音,而高于1的值提供额外的增益提升。

访问函数

float音量() const
voidsetVolume(float volume)

通知信号

voidvolumeChanged()

成员函数文档

[显式] QSpatialSound::QSpatialSound(QAudioEngine *engine)

engine创建空间声音源。该对象可以放置在3D空间中,并且越接近听者,声音越大。

[虚拟 noexcept] QSpatialSound::~QSpatialSound()

销毁声音源。

QAudioEngine *QSpatialSound::engine() const

返回与此听者关联的引擎。

[槽] void QSpatialSound::pause()

暂停声音播放。调用 play() 将继续播放。

[槽] void QSpatialSound::play()

开始播放声音。如果声音已经播放,则不执行任何操作。

[槽] void QSpatialSound::stop()

停止声音播放,并重置当前位置和当前循环计数到0。调用 play() 将从声音文件的开始处开始播放。

© 2024 Qt公司。此处包含的文档贡献是各自所有者的版权。提供的文档是根据自由软件基金会发布的 GNU 自由文档许可证第 1.3 版许可的。Qt及其相关标志是 Finland 和/或全球其他国家的 Qt 公司的商标。所有其他商标均为各自所有者的财产。