首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >多声道声音与winmm,许多WaveOutOpen?

多声道声音与winmm,许多WaveOutOpen?
EN

Stack Overflow用户
提问于 2011-10-06 22:47:33
回答 2查看 3.1K关注 0票数 5

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

当我调用WaveOutOpen()一次,然后多次调用许多WaveOutWrite()时,声音就不是并行的-它们是排队的。

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

它似乎可以工作,但我不确定它是否可以,因为我发现它在任何教程或文档中都没有明确说明。

用这么“多WaveOutOpen”的方式播放声音还可以吗??

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-10-07 17:22:28

当我调用WaveOutOpen()一次,然后多次调用许多WaveOutWrite()时,声音是不并行的-它们是排队的。

这正是应该发生的事情。WaveOutWrite对下一个缓冲区进行排队。它允许你发送你想要播放的音频小块。

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

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

票数 3
EN

Stack Overflow用户

发布于 2011-10-07 17:35:38

如果你的产品是面向消费者的,我建议你使用DirectSound。

从DirectX8开始,该应用程序接口实际上是相当轻松的,并且大多数消费类机器都会安装它。

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

https://stackoverflow.com/questions/7676083

复制
相关文章

相似问题

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