gru*_*htr 5 windows audio winapi winmm
我正在尝试以多通道(并行)方式在 Windows XP 上播放声音。我曾在某处读到可能无法使用 WinMM 播放并行声音,但这是我观察到的:
当我调用 WaveOutOpen() 一次,然后多次调用 WaveOutWrite() 时,声音就不是并行的——它们是排队的。
但是当我调用 WaveOutOpen 说九次(然后存储九个句柄)然后用九种不同的声音调用九次 WaveOutWrite() 时,它们是并行播放的(多通道)——也就是说它们是混合的。
它似乎有效,但我不确定它是否可以,因为我没有在任何教程或文档中明确说明它。
以这种“许多 WaveOutOpen”的方式播放声音可以吗??
当我调用 WaveOutOpen() 一次,然后多次调用 WaveOutWrite() 时,声音不是并行的 - 它们是排队的。
这正是应该发生的事情。WaveOutWrite 将下一个缓冲区排队。它允许您以小块的形式发送您想要播放的音频。
但是,当我调用 WaveOutOpen 说九次(然后存储九个句柄),然后使用九种不同的声音调用九次 WaveOutWrite() 时,它们会并行播放(多通道) - 也就是说它们是混合的。
再次强调,这是正确且符合预期的。这是同时播放多个声音的最简单方法。然而,如果您想要精确混合样本,您应该自己将音频样本混合到一个样本流中,并通过单个 WaveOut 设备进行播放。
归档时间: |
|
查看次数: |
3069 次 |
最近记录: |