【问题标题】:Integrating X3Daudio with XAudio2将 X3Daudio 与 XAudio2 集成
【发布时间】:2022-08-20 05:09:35
【问题描述】:

我目前正在努力使用 XAudio2 库实现 3D 位置声音。 当侦听器和源的位置在所有轴上正好为 0.0f 时,我设法让它工作。当我稍微移动听者或音源时,声音不再被听到但仍在播放。我在这里想念什么?谢谢 :)

uint32_t sourceInputChannels = 2;
uint32_t masterInputChannels = 8;

float* outputMatrix = new float[masterInputChannels * sourceInputChannels];

// Listener
X3DAUDIO_LISTENER listener{};
listener.Position = { 0.0f, 0.0f, 0.0f };
listener.Velocity = { 0.0f, 0.0f, 0.0f };
listener.OrientFront = { 1.0f, 0.0f, 0.0f };
listener.OrientTop = { 0.0f, 0.0f, 1.0f };

// Emitter
X3DAUDIO_EMITTER sourceEmitter{};
sourceEmitter.ChannelCount = 1;
sourceEmitter.CurveDistanceScaler = FLT_MIN;
sourceEmitter.Position = { 0.0f, 0.0f, 0.0f };
sourceEmitter.Velocity = { 0.0f, 0.0f, 0.0f };
sourceEmitter.OrientFront = { 1.0f, 0.0f, 0.0f };
sourceEmitter.OrientTop = { 0.0f, 0.0f, 1.0f };
sourceEmitter.ChannelRadius = 2.0f;
sourceEmitter.InnerRadius = 2.0f;
sourceEmitter.InnerRadiusAngle = X3DAUDIO_PI / 4.0f;

X3DAUDIO_DSP_SETTINGS dspSettings{};
dspSettings.SrcChannelCount = sourceEmitter.ChannelCount; // 1

// 8 * 2, OUTPUT_CHANNELS is also present in CreateMasteringVoice
dspSettings.DstChannelCount = OUTPUT_CHANNELS * sourceVoiceDetails.InputChannels; 
dspSettings.pMatrixCoefficients = outputMatrix;

// Calculating
X3DAudioCalculate(g_CealContext->X3DInstance, &listener, &sourceEmitter, X3DAUDIO_CALCULATE_MATRIX | 
                X3DAUDIO_CALCULATE_DOPPLER | X3DAUDIO_CALCULATE_LPF_DIRECT | X3DAUDIO_CALCULATE_REVERB, &dspSettings);

sourceVoice->SetOutputMatrix(g_CealContext->XMasterVoice, sourceInputChannels, masterInputChannels, outputMatrix);
delete[] outputMatrix;

标签: c++ audio xaudio2


【解决方案1】:

X3DAudio 有很多参数,但我猜问题是你有一个立体声(2 通道)源声音并且正在尝试使用 1 通道 DSP 设置。

您应该查看托管在 GitHub 上的原始旧版 DirectX SDK XAudio2 示例。特别是,请参阅XAudio2Sound3D

您还应该看看DirectX Tool Kit for Audio

【讨论】:

    猜你喜欢
    • 2021-09-15
    • 1970-01-01
    • 1970-01-01
    • 2019-05-30
    • 2016-04-10
    • 2016-10-26
    • 2016-10-22
    • 2017-05-16
    • 2013-06-01
    相关资源
    最近更新 更多