gpt4 book ai didi

windows - 多声道声音与 winmm,许多 WaveOutOpen?

转载 作者:可可西里 更新时间:2023-11-01 14:14:00 29 4
gpt4 key购买 nike

我正在尝试以多声道(并行)方式在 Windows XP 上播放声音。我在某处读到过用 WinMM 播放平行声音可能是不可能的,但这是我观察到的:

当我调用 WaveOutOpen() 一次,然后多次调用 WaveOutWrite() 时那么声音就不是平行的——它们是排队的。

但是当我调用 WaveOutOpen 时说九次(然后存储九个句柄)然后用九种不同的声音调用九次 WaveOutWrite()并行播放(多 channel )- 即它们是混合的。

它似乎有效,但我不确定它是否可以,因为我没有找到明确说明在任何教程或文档中。

用这种'​​many WaveOutOpen'的方式播放声音可以吗??

最佳答案

When I call WaveOutOpen() once, and then call many WaveOutWrite() many times then sounds are not parallel - they are queued.

这正是应该发生的事情。 WaveOutWrite 将下一个缓冲区排队。它允许您以小块的形式发送要播放的音频。

But when I call WaveOutOpen say nine times (and then store nine handles to it) and then call nine times WaveOutWrite() with nine different sounds they are played in parallel (multi-channel) - that is they are mixed.

同样,这是正确的,也是意料之中的。这是播放多个同步声音的最简单方法。但是,如果您想要样本精确混合,您应该自己将音频样本混合到一个样本流中,并通过单个 WaveOut 设备播放。

关于windows - 多声道声音与 winmm,许多 WaveOutOpen?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7676083/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com