请教:如何读取usb麦克风的数据?

snowx 2004-07-21 11:41:03
需要哪些步骤?
如何得到缓冲区满的消息?
如何知道什么时候录音/停止?


...全文
468 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
shadowWind 2004-08-12
  • 打赏
  • 举报
回复
mark
snowx 2004-07-26
  • 打赏
  • 举报
回复
thx: codewarrior & BLsoft(網龍ζ龍活)
名牌大灰狼 2004-07-23
  • 打赏
  • 举报
回复
当外设连到主机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); //更新编辑框内容
}

试试这个控件能不能读到你所要的数据
名牌大灰狼 2004-07-23
  • 打赏
  • 举报
回复
DirectMusic在MSDN也有例子.ms-help://MS.MSDNQTR.2003FEB.2052/filters/workshop/author/behaviors/reference/time2/elements/audio.htm
snowx 2004-07-23
  • 打赏
  • 举报
回复
都看了很多了
没有找到
会思考的草 2004-07-22
  • 打赏
  • 举报
回复
你装了msdn2001就可以了。实在没有我发给你。
snowx 2004-07-22
  • 打赏
  • 举报
回复
有相关的internet地址吗?
会思考的草 2004-07-22
  • 打赏
  • 举报
回复
这里头有一大堆例子不知道有没有你要的:
\MSDN2001\Samples\VC98\sdk\graphics\audio
会思考的草 2004-07-22
  • 打赏
  • 举报
回复
唔,你最好反汇编Windows自带的录音机看看,我看它是用多媒体库完成的,winmm.dll
会思考的草 2004-07-22
  • 打赏
  • 举报
回复
DDK的帮助里面有关于Streaming Device(Video and Audio)这一章。
会思考的草 2004-07-22
  • 打赏
  • 举报
回复
仅仅是读取数据的话,你看看DirectMusic可不可以。
snowx 2004-07-22
  • 打赏
  • 举报
回复
codewarrior 能给我些文章吗?
ddk里我找不到相关的资料
snowx 2004-07-21
  • 打赏
  • 举报
回复
没有一点头绪,大家帮忙
会思考的草 2004-07-21
  • 打赏
  • 举报
回复
我倒是写过一点点摄像头的驱动,不知道和你这个是不是一样。
会思考的草 2004-07-21
  • 打赏
  • 举报
回复
这个东东应该和USB接口的摄像头差不多吧,属于Streaming Device,建议你去看看DDK里头有没有例子。
snowx 2004-07-21
  • 打赏
  • 举报
回复
或者其他的usb设备数据读取的也行

snowx 2004-07-21
  • 打赏
  • 举报
回复
那时声卡的录音吧
现在用的是usb 接口的 麦克风
不通过声卡了
rwdx 2004-07-21
  • 打赏
  • 举报
回复
使用wavinXXXXX系列函数或是ds进行录音,网上很多现成的程序的

2,640

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 硬件/系统
社区管理员
  • 硬件/系统社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧