X3DAUDIO_DSP_SETTINGS 結構 (x3daudio.h)
從 呼叫 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。
搭配 XAudio2 使用 X3DAudio 時, pMatrixCoefficients 成員中傳回的值會套用至具有 IXAudio2Voice::SetOutputMatrix 的語音。
pDelayTimes
呼叫端提供的延遲時間陣列,以毫秒為單位接收每個目的地通道的延遲。 此陣列必須至少有 DstChannelCount 元素。 X3DAudio 實際上不會執行延遲。 它只會傳回可用來調整放置在效果鏈結中的延遲 DSP 效果的係數。 如果呼叫 X3DAudioCalculate 時未指定X3DAUDIO_CALCULATE_DELAY旗標,pDelayTimes 成員可以是 NULL。
SrcChannelCount
來源通道數目。 呼叫 X3DAudioCalculate 之前,這必須初始化為發出器通道的數目。
DstChannelCount
來源通道數目。 呼叫 X3DAudioCalculate 之前,這必須初始化為發出器通道的數目。
LPFDirectCoefficient
LPF 直接路徑係數。 只有在呼叫 X3DAudioCalculate 時指定X3DAUDIO_CALCULATE_LPF_DIRECT旗標時才會計算。
搭配 XAudio2 使用 X3DAudio 時,LPFDirectCoefficient 成員中傳回的值會套用至 具有 IXAudio2Voice::SetFilterParameters 的來源語音低傳遞篩選。
LPFReverbCoefficient
LPF 殘響係數。
只有在呼叫 X3DAudioCalculate 時指定X3DAUDIO_CALCULATE_LPF_REVERB旗標時才會計算。
ReverbLevel
殘響傳送層級。 只有在呼叫 X3DAudioCalculate 時指定X3DAUDIO_CALCULATE_REVERB旗標時才會計算。
DopplerFactor
Doppler 移位因數。 調整 Doppler 移位效果的重新取樣比例,其中:
effective_frequency = DopplerFactor × original_frequency
只有在呼叫 X3DAudioCalculate 時指定X3DAUDIO_CALCULATE_DOPPLER旗標時才會計算。
搭配 XAudio2 使用 X3DAudio 時,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)規格需求
需求 | 值 |
---|---|
標頭 | x3daudio.h |