需要哪些步骤?
如何得到缓冲区满的消息?
如何知道什么时候录音/停止?

解决方案 »

  1.   

    使用wavinXXXXX系列函数或是ds进行录音,网上很多现成的程序的
      

  2.   

    那时声卡的录音吧
    现在用的是usb 接口的 麦克风
    不通过声卡了
      

  3.   

    或者其他的usb设备数据读取的也行
      

  4.   

    这个东东应该和USB接口的摄像头差不多吧,属于Streaming Device,建议你去看看DDK里头有没有例子。
      

  5.   

    codewarrior 能给我些文章吗?
     ddk里我找不到相关的资料
      

  6.   

    仅仅是读取数据的话,你看看DirectMusic可不可以。
      

  7.   

    DDK的帮助里面有关于Streaming Device(Video and Audio)这一章。
      

  8.   

    唔,你最好反汇编Windows自带的录音机看看,我看它是用多媒体库完成的,winmm.dll
      

  9.   

    这里头有一大堆例子不知道有没有你要的:
    \MSDN2001\Samples\VC98\sdk\graphics\audio
      

  10.   

    你装了msdn2001就可以了。实在没有我发给你。
      

  11.   

    DirectMusic在MSDN也有例子.ms-help://MS.MSDNQTR.2003FEB.2052/filters/workshop/author/behaviors/reference/time2/elements/audio.htm
      

  12.   

    当外设连到主机USB接口时,主机会检测到新硬件,这时需要安装一个可从FTDI公司的网站上免费下载的虚拟串口(VCP)驱动程序,该驱动程序适用于WINDOWS98/2000/ME/XP等不同操作系统。设计者需要完成的是,编写一个针对虚拟串口通信的应用程序,把虚拟串口(VCP)当作一个标准的串口去访问。设计的软件部分可使用VB或VC语言中提供的串口通信MSComm控件进行应用程序编写,下面我们以VC语言为例介绍如何编写应用程序,主要介绍MSComm控件的设置及串口消息事件MSComm.CommEvent响应函数的编写。1)MSComm控件设置:编程时通常把虚拟串口设置为COM3,即将MSComm.SetCommPort置为3, MSComm.SetSettings置为"9600,n,8,1"(该速率为默认设置,实际上VCP驱动程序总是使数据以最快速率传输);通过MSComm.SetPortOpen设置COM3的开关状态;通过MSComm.SetInput和MSComm.SetOutput读入或输出数据。在读取数据时,设置MSComm.Rthreshold的值为1。2)有数据传到PC机时,就立即触发串口消息事件MSComm.CommEvent,自动读取COM3的数据。下面是本文作者编写的应用程序,处理这个串口消息事件的OnComm函数,其完成的是从串口接收数据并显示在一个编辑框中。发送数据则可自动发送或者手动发送,这由用户根据具体情况自己设定。void CAaDlg::OnComm() 

    VARIANT variant_inp;
    COleSafeArray safearray_inp;
    LONG len,k;
    BYTE rxdata[2048]; //设置BYTE数组 An 8-bit integerthat is not signed.
    CString strtemp;
    if(MSComm.GetCommEvent()==2); //事件值为2表示接收缓冲区内有字符
    { / /以下可以根据通信协议加入处理代码
    variant_inp= MSComm.GetInput(); //读缓冲区
    safearray_inp=variant_inp; //VARIANT型变量转换为ColeSafeArray型变量
    len=safearray_inp.GetOneDimSize(); //得到有效数据长度
    for(k=0;k<len;k++)
    safearray_inp.GetElement(&k,rxdata+k);//转换为BYTE型数组
    for(k=0;k<len;k++) //将数组转换为Cstring型变量
    {
    BYTE bt=*(char*)(rxdata+k); //字符型
    strtemp.Format("%c",bt); //将字符送入临时变量strtemp存放
    m_redit+=strtemp; //加入接收编辑框对应字符串 }
    }
    UpdateData(FALSE); //更新编辑框内容
    }试试这个控件能不能读到你所要的数据
      

  13.   

    thx: codewarrior & BLsoft(網龍ζ龍活)