x3daudio.h) (X3DAUDIO_DSP_SETTINGS 结构
接收对 X3DAudioCalculate 的调用的结果。
语法
typedef struct X3DAUDIO_DSP_SETTINGS {
FLOAT32 *pMatrixCoefficients;
FLOAT32 *pDelayTimes;
UINT32 SrcChannelCount;
UINT32 DstChannelCount;
FLOAT32 LPFDirectCoefficient;
FLOAT32 LPFReverbCoefficient;
FLOAT32 ReverbLevel;
FLOAT32 DopplerFactor;
FLOAT32 EmitterToListenerAngle;
FLOAT32 EmitterToListenerDistance;
FLOAT32 EmitterVelocityComponent;
FLOAT32 ListenerVelocityComponent;
} X3DAUDIO_DSP_SETTINGS, *LPX3DAUDIO_DSP_SETTINGS;
成员
pMatrixCoefficients
调用方提供的数组,将使用每个目标通道中存在的每个源通道的音量级别进行初始化。 数组必须至少有 (SrcChannelCount × DstChannelCount) 元素。 数组的排列方式是源通道作为数组的列索引,目标通道作为数组的行索引。 例如,将双声道立体声输入呈现为 5.1 输出,该输出加权到前声道(但中间声道和低频通道中不存在),矩阵可能如下表所示。
输出 | 左输入 | 右输入 |
---|---|---|
Left | 1.0 | 0.0 |
Right | 0.0 | 1.0 |
Front Center | 0.0 | 0.0 |
LFE | 0.0 | 0.0 |
向左后 | 0.8 | 0.0 |
右后方 | 0.0 | 0.8 |
请注意,左通道和右声道完全映射到输出左声道和右声道;80% 的左右输入映射到后左和右通道。
如果在调用 X3DAudioCalculate 时未指定X3DAUDIO_CALCULATE_MATRIX标志,则 pMatrixCoefficients 成员可以为 NULL。
将 X3DAudio 与 XAudio2 配合使用时, pMatrixCoefficients 成员中返回的值将应用于具有 IXAudio2Voice::SetOutputMatrix 的语音。
pDelayTimes
调用方提供了延迟时间数组,它接收每个目标通道的延迟(以毫秒为单位)。 此数组必须至少具有 DstChannelCount 元素。 X3DAudio 实际上不会执行延迟。 它只返回可用于调整放置在效果链中的延迟 DSP 效果的系数。 如果在调用 X3DAudioCalculate 时未指定X3DAUDIO_CALCULATE_DELAY标志,则 pDelayTimes 成员可以为 NULL。
SrcChannelCount
源通道数。 在调用 X3DAudioCalculate 之前,必须将其初始化为发射器通道数。
DstChannelCount
源通道数。 在调用 X3DAudioCalculate 之前,必须将其初始化为发射器通道数。
LPFDirectCoefficient
LPF 直接路径系数。 仅在调用 X3DAudioCalculate 时指定了X3DAUDIO_CALCULATE_LPF_DIRECT标志时才计算。
将 X3DAudio 与 XAudio2 配合使用时,LPFDirectCoefficient 成员中返回的值将应用于具有 IXAudio2Voice::SetFilterParameters 的源语音上的低传递筛选器。
LPFReverbCoefficient
LPF 混响路径系数。
仅在调用 X3DAudioCalculate 时指定X3DAUDIO_CALCULATE_LPF_REVERB标志时计算。
ReverbLevel
混响发送级别。 仅在调用 X3DAudioCalculate 时指定X3DAUDIO_CALCULATE_REVERB标志时计算。
DopplerFactor
多普勒移位因子。 缩放多普勒移位效果的重新采样器比率,其中:
effective_frequency = DopplerFactor × original_frequency
仅在调用 X3DAudioCalculate 时指定X3DAUDIO_CALCULATE_DOPPLER标志时计算。
将 X3DAudio 与 XAudio2 结合使用时,DopplerFactor 中返回的值将应用于具有 IXAudio2SourceVoice::SetFrequencyRatio 的源语音。
EmitterToListenerAngle
发射器到侦听器的内部角度,以弧度表示,相对于发射器的正面方向。
仅在调用 X3DAudioCalculate 时指定X3DAUDIO_CALCULATE_EMITTER_ANGLE标志时计算。
EmitterToListenerDistance
从侦听器到发射器基位置的距离(以用户定义的世界单位为单位)。
EmitterVelocityComponent
投影到发射器到侦听器矢量的发射器速度矢量的分量,以用户定义的世界单位/秒为单位。
仅在调用 X3DAudioCalculate 时指定X3DAUDIO_CALCULATE_DOPPLER标志时计算。
ListenerVelocityComponent
投影到发射器->侦听器矢量上的侦听器速度矢量的分量,以用户定义的世界单位/秒为单位。 仅在调用 X3DAudioCalculate 时指定X3DAUDIO_CALCULATE_DOPPLER标志时计算。
注解
在将此结构传递给 X3DAudioCalculate 函数之前,必须初始化以下成员:
- pMatrixCoefficients
- pDelayTimes
- SrcChannelCount
- DstChannelCount
- pMatrixCoefficients
- pDelayTimes
- LPFDirectCoefficient
- LPFReverbCoefficient
- ReverbLevel
- DopplerFactor
- EmitterToListenerAngle
- EmitterToListenerDistance
- EmitterVelocityComponent
- ListenerVelocityComponent
平台要求
Windows 10 (XAudio2.9) ;Windows 8,Windows Phone 8 (XAudio 2.8) ;DirectX SDK (XAudio 2.7)要求
要求 | 值 |
---|---|
Header | x3daudio.h |