同时播放两段wave音频,而不影响声音质量,不出现噪音等类似于和弦的播放;假如有 wave 数据块 A 、B、 C让他们同时进入wave设备播放:
A --
  |
B -- ---play   
  |  
C---
使用API:Waveform Audio FunctionswaveOutWrite
waveOutProc

解决方案 »

  1.   

    直接写入声卡播放感觉有问题.
    即时你有多个CPU能同步处理多个播放过程,但你声卡终究只有一个.
    在同一时刻声卡也只能播放一个声音吧.
    你这个混音能达到和谐的效果么?
      

  2.   

    http://www.99inf.net/SoftwareDev/VC/28065.htm
      

  3.   


    谢谢!
    如果不用directsound 呢,
    就是想知道如何叠加A\B\C三个buffer中的声音数据,而不失真!如果直接叠加会失真,因为溢出了!我的配置是:采样率是22050、16bit、1通道
      

  4.   

    http://topic.csdn.net/t/20040106/16/2639025.html这里面提到了这样一种处理,但是看不明白,哪位可以说明一下?
    混音算法比较简单。直接将每个采样值相加,人耳能够分辨出两种声音。 
    但是要注意的是直接相加很可能会造成一段采样值溢出,因此要按这段采样值 
    相加之后的最大值计算出比例因子,每个值乘这个因子之后再相加,就不会有 
    噪音。
      

  5.   

    自己乱猜的,假设两种声音A,B,A占80%,B占20%,那么A*0.8 + B*0.2,这样就不会溢出了吧?