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。

注意 仅当为立体声输出初始化 X3DAudio 时,才会返回此成员。 对于典型的 Xbox 360 用法,它根本不会返回任何数据。
 

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
通过将此结构传递给 X3DAudioCalculate 函数返回以下成员:
  • pMatrixCoefficients

  • pDelayTimes

  • LPFDirectCoefficient

  • LPFReverbCoefficient
  • ReverbLevel

  • DopplerFactor

  • EmitterToListenerAngle
  • EmitterToListenerDistance

  • EmitterVelocityComponent

  • ListenerVelocityComponent
注意对于 pMatrixCoefficients 和 pDelayTimes,X3DAudioCalculate 不会分配额外的内存。 X3DAudioCalculate 仅修改为这些指针分配的内存位置上的值。
 

平台要求

Windows 10 (XAudio2.9) ;Windows 8,Windows Phone 8 (XAudio 2.8) ;DirectX SDK (XAudio 2.7)

要求

要求
Header x3daudio.h

另请参阅

结构