首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >DirectXTK 3D音频仅使用左声道

DirectXTK 3D音频仅使用左声道
EN

Stack Overflow用户
提问于 2021-03-28 21:23:02
回答 1查看 56关注 0票数 1

我已经决定试一下DirectXTK12音频,除了3D声音外,它工作得很好。我遵循guide from wiki,但无论我如何定位收听器/发射器,声音总是在左边的扬声器中。怎么了?我的代码如下所示:

代码语言:javascript
复制
HRESULT hr = CoInitializeEx(nullptr, COINIT_MULTITHREADED);
if (FAILED(hr)) {...}

std::unique_ptr<DirectX::AudioEngine> audEngine;

DirectX::AUDIO_ENGINE_FLAGS eflags = DirectX::AudioEngine_Default;
#ifdef _DEBUG
    eflags |= DirectX::AudioEngine_Debug;
#endif

std::unique_ptr<DirectX::SoundEffect> soundEffect;
soundEffect = std::make_unique<DirectX::SoundEffect>(audEngine.get(), L"Sound.wav");
auto effect = soundEffect->CreateInstance(DirectX::SoundEffectInstance_Use3D);

effect->Play(false);

DirectX::AudioListener listener;
listener.SetPosition(DirectX::XMFLOAT3(0.0f, 0.0f, 0.0f));

DirectX::AudioEmitter emitter;
emitter.SetPosition(DirectX::XMFLOAT3(0.0f, 0.0f, 0.0f));

effect->Apply3D(listener, emitter, false);

它应该在中间,但它只使用左通道,尽管输出中没有错误,但输出中唯一显示的内容是:

代码语言:javascript
复制
INFO: XAudio 2.9 debugging enabled
INFO: mastering voice has 2 channels, 96000 sample rate, 00000003 channel mask

在没有3D的情况下播放声音会像预期的那样同时使用两个扬声器。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-04-11 15:51:07

我已经修复了这个问题,通过将使用过的Sound.wav转换为单声道(1声道)声音。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66841890

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档