现在要实现这样的功能,在播放音乐的时候,如果有人对着麦克风说话,则自动停止音乐播放,当没有人说话时,继续播放音乐。

解决方案 »

  1.   

    waveInOpen 判断采集值的峰值,大于某个值就认为有人说话
      

  2.   

    fox1999(红狐)说的应该对,可是我找了很多关于waveInOpen系列函数方面的资料,还是不知道怎样采集峰值,好像还要接收MM_WIM_DATA消息,下面的代码怎么接收不了呢?Procedure   Tform1.WNDPROC(var   msg:TMessage);   
    var Hdr:PWaveHdr;   i:integeR;   r:real;   
    begin   
      INHERITED;   
      case  msg.Msg   of   
        MM_WIM_OPEN:   
        begin                       
              ...
        end;   
        MM_WIM_CLOSE:   
        begin   
              ...
        end;   
        MM_WIM_DATA: 
        begin
              ...
        end;
      end;
    end;