class QAudioEngine#

QAudioEngine 管理三维声音场。更多

Inheritance diagram of PySide6.QtSpatialAudio.QAudioEngine

摘要#

属性#

方法#

槽函数#

信号#

注意

本文档可能包含从 C++ 自动翻译到 Python 的片段。我们随时欢迎对片段翻译的贡献。如果您发现翻译中的问题,也可以通过在 https:/bugreports.qt.io/projects/PYSIDE 上创建工单的方式来告诉我们

详细说明#

您可以使用QAudioEngine的实例来管理三维空间中的声音场。声音场由多个定义在3D空间指定位置的QSpatialSound对象组成。您还可以使用QAmbientSound添加立体声遮罩。

您可以使用QAudioListener来定义听者相对于声源的位置。如果听者离声源更远,声源的声音将更容易被忽略。根据听者和声源之间的方向,声源将被映射到相应的扬声器和耳机。

QAudioEngine提供了两种输出模式。第一种模式将声音场渲染到一组扬声器上,可以是立体声扬声器对或环绕配置。第二种模式在使用耳机时提供沉浸式的3D声音体验。

声音定位感知主要受两个因素驱动。第一个因素是左右耳之间声波的时间差。第二个因素来自来自不同方向的声音如何从我们的耳朵和头部产生不同类型的反射。更多详情请参阅 https://en.wikipedia.org/wiki/Sound_localization

空间音频引擎通过头部相关传输函数(HRTF,请参阅 https://en.wikipedia.org/wiki/Head-related_transfer_function)模拟这些时间差和反射。用于模拟这些效果的函数模拟了一个普通人的耳朵和头部。当使用耳机时,它为大多数人提供了良好的沉浸式3D声音定位体验。

该引擎相对灵活,允许您定义房间属性和混响设置来模拟不同类型的房间。

声音源也可以被遮挡,从而降低那些来源的声音。

默认情况下,音频引擎使用的坐标系是厘米单位。坐标轴与通常用于3D的典型坐标系对齐。正x指向右侧,正y指向上方,正z指向后方。

class OutputMode#

常量

描述

QAudioEngine.Surround

将声音映射到输出设备的扬声器配置。这通常是立体声或环绕扬声器设置。

QAudioEngine.Stereo

将声音映射到输出设备的立体声扬声器配置。这将忽略任何其他扬声器,并仅使用左右通道来创建立体声渲染的声音场。

QAudioEngine.Headphone

使用耳机空间化在通过耳机收听声音场时创建3D音频效果。

注意

当使用from __feature__ import true_property时,可以直接使用属性,否则通过访问器函数使用。

property distanceScale: float#

定义了由空间音频引擎使用的坐标系统范围。默认情况下,所有单位均为厘米,与Qt Quick 3D默认使用的单位一致。

将距离比例设置为QAudioEngine::DistanceScaleMeter,获取以米为单位。

访问函数
属性masterVolume: float#

设置或返回用于渲染声音场使用的音量。

访问函数
属性outputDevice: QAudioDevice#

设置或返回用于播放声音场的设备。

访问函数
属性outputMode: QAudioEngine.OutputMode#

设置或检索引擎当前输出模式。

另请参阅

OutputMode

访问函数
属性paused: bool#

暂停空间音频引擎。

访问函数
PySide6.QtSpatialAudio.QAudioEngine.DistanceScaleCentimeter#
PySide6.QtSpatialAudio.QAudioEngine.DistanceScaleMeter#
__init__(parent)#
参数:

parentQObject

__init__(sampleRate[, parent=None])
参数:
  • sampleRate – int

  • parentQObject

__init__()
distanceScale()#
返回类型:

float

另请参阅

setDistanceScale()

属性 getter distanceScale .

distanceScaleChanged()#

distanceScale 属性的通知信号。

masterVolume)#
返回类型:

float

另请参阅

setMasterVolume()

属性 getter masterVolume .

masterVolumeChanged()#

masterVolume 属性的通知信号。

outputDevice()#
返回类型:

QAudioDevice

另请参阅

setOutputDevice()

属性 getter outputDevice .

outputDeviceChanged()#

outputDevice 属性的通知信号。

outputMode()#
返回类型:

OutputMode

另请参阅

setOutputMode()

属性 getter outputMode .

outputModeChanged()#

outputMode 属性的通知信号。

pause()#

暂停播放。

paused()#
返回类型:

bool

另请参阅

setPaused()

属性 pausedᅟ 的获取器。

pausedChanged()#

属性 pausedᅟ 的通知信号。

resume()#

恢复播放。

roomEffectsEnabled()#
返回类型:

bool

如果启用了房间效果,则返回 true。

sampleRate()#
返回类型:

int

返回引擎配置的采样率。

setDistanceScale(scale)#
参数:

scale – float

另请参阅

distanceScale()

属性 distanceScaleᅟ 的设置器。

setMasterVolume(volume)#
参数:

volume – float

另请参阅

masterVolume()

属性 masterVolumeᅟ 的设置器。

setOutputDevice(device)#
参数:

deviceQAudioDevice

另请参阅

outputDevice()

属性 outputDeviceᅟ 的设置器。

setOutputMode(mode)#
参数:

modeOutputMode

另请参阅

outputMode()

属性 outputModeᅟ 的设置器。

setPaused(paused)#
参数:

paused – bool

另请参阅

paused()

属性 pausedᅟ 的设置器。

setRoomEffectsEnabled(enabled)#
参数:

enabled - 布尔类型

启用房间效果,例如回声和混响。

enabled为真时,启用房间效果。如果创建了至少一个QAudioRoom对象,且听者位于其中至少一个房间内,房间效果将生效。如果听者位于多个房间内,将使用体积最小的房间。

另请参阅

roomEffectsEnabled()

start()#

启动引擎。

stop()#

停止引擎。