【发布时间】:2022-01-17 01:37:04
【问题描述】:
我有一个 5.1 环绕声系统,用于输出一些 WAV 文件。我正在用 C++ 编写一种在其中一个扬声器上输出声音的方法。
基本上有什么办法可以说,x.wav 文件只在角落的左扬声器上输出声音?喜欢说话者生成地址吗?
【问题讨论】:
-
dsound 可能不是合适的工具,但 XAudio2 可能是。
我有一个 5.1 环绕声系统,用于输出一些 WAV 文件。我正在用 C++ 编写一种在其中一个扬声器上输出声音的方法。
基本上有什么办法可以说,x.wav 文件只在角落的左扬声器上输出声音?喜欢说话者生成地址吗?
【问题讨论】:
您最好的选择可能是输出完整的 5.1 流,但为您不想播放的频道输出零样本。这很容易做到,并且将控制哪个扬声器实际上是“活跃的”。一点实验应该可以知道对应哪个通道。
输出流具有交错的通道,顺便说一句,因此在编写代码时要考虑到这一点。
【讨论】:
IDirectSound3DBuffer,但这对于积极支持的XAudio2 和X3DAudio 来说确实是一个更好的工作。 DirectSound 被认为是非常传统的,可能无法按预期工作。