win7下音频采集问题
有时候真的很令人纳闷哈,在win7下,音频采集都出现问题了
先看下音频采集一个接口:
waveInOpen(
PHWAVEIN lphWaveIn:{用于返回设备句柄的指针; 如果 dwFlags=WAVE_FORMAT_QUERY, 这里应是 NULL}
UINT uDeviceID: {设备ID; 可以指定为: WAVE_MAPPER, 这样函数会根据给定的波形格式选择合适的设备}
PWaveFormatEx lpFormatEx: {TWaveFormat 结构的指针; TWaveFormat 包含要申请的波形格式}
DWORD dwCallback: {回调函数地址或窗口句柄; 若不使用回调机制, 设为 NULL}
DWORD dwInstance: {给回调函数的实例数据; 不用于窗口}
DWORD dwFlags: {打开选项}
): MMRESULT; {成功返回 0; 可能的错误值见下:}
MMSYSERR_BADDEVICEID = 2; {设备ID超界}
MMSYSERR_ALLOCATED = 4; {指定的资源已被分配}
MMSYSERR_NODRIVER = 6; {没有安装驱动程序}
MMSYSERR_NOMEM = 7; {不能分配或锁定内存}
WAVERR_BADFORMAT = 32; {设备不支持请求的波形格式}
先举个应用的例子吧,查询设备是否存在,
WAVEFORMATEX waveFormat;
memset(&waveFormat, 0, sizeof(waveFormat));
waveFormat.cbSize = 0;
waveFormat.wFormatTag = WAVE_FORMAT_PCM;
waveFormat.nBlockAlign = 1;
waveFormat.nChannels = 1;
waveFormat.wBitsPerSample = 8;
waveFormat.nAvgBytesPerSec = 11025;
waveFormat.nSamplesPerSec = 11025;
hRet = waveInOpen(0, WAVE_MAPPER, &waveFormat, 0, 0, WAVE_FORMAT_QUERY);
Win7 下,如果没插入MIC,hRet = MMSYSERR_BADDEVICEID,也就说找不到MIC设备。
但是在Xp下,能查询成功哈。这估计是win7下做了安全检测了。这本来是件好事,MIC都没插上,也能查询到设备,就等于是浪费资源哈。当然再利用waveInOpen函数打开设备,在win7下是打不开的,只是当插入MIC时,打开设备成功后,拔掉MIC,这时再调用WaveIn之类的音频采集函数就卡死了。捶背。。。
win7下音频采集问题相关推荐
- android下音频采集功能,音频采集:Android基于AudioRecord的实现
前言 这篇文章简单详情下手机端Android系统下利使用AudioRecord进行音频采集方法. 开始前先提供一份源码 AudioRecordLib . AudioRecord采集的核心实现在于 Au ...
- windows下简单的音频采集示例
最近需要在window下进行音频采集,网上找了很久都没找到win7下如何采集pcm数据的完整示例,经过一翻折腾后写了一个很简单的demo程序以供同行进行参考,如有不正确的地方请指正 本例是采用audi ...
- html audio 本地无效源,音频文件无法播放?H5的audio标签在win7下运行时报错“无效源”?...
以下代码在win10下的谷歌.火狐.IE11均运行正常.但是在win7下的IE11运行会出现播放器上面显示"无效源"的错误. tempelate代码: {{audioInfo.au ...
- Linux下Qt使用QAudio相关类进行音频采集,使用Windows下的Matlab软件播放
Qt集成的QAudio相关类可以很方便的进行音频采集,主要涉及到以下几个类: #include <QAudioInput> #include <QAudioDeviceInfo> ...
- Linux 下查看麦克风或音频采集设备
前言 最近需要在树莓派上做音频采集和音频处理,所以第一步得在树莓派系统下查看到当前的音频输入和音频输出设备.树莓派安装了raspberry系统,raspberry系统隶属于debian系统. 一.如何 ...
- 【总结】Linux 下查看麦克风或音频采集设备
前言 最近需要在树莓派上做音频采集和音频处理,所以第一步得在树莓派系统下查看到当前的音频输入和音频输出设备.树莓派安装了raspberry系统,raspberry系统隶属于debian系统. 一.如何 ...
- Win7下使用VFW库连接摄像头
本文转自:http://hi.baidu.com/blogofivan/blog/item/bc28009bb8ee45036f068c6d.html VFW库在XP下很好用,但是移到Vista或者W ...
- 记录一次cefsharp1输入法在win7下异常解决定位
最近几天都被基于cefSharp封装的浏览器控件搞疯了!对于cefSharp基本满足当前所做项目的需求,但是有一个问题一直困扰我,那就是系统中偶尔会出现输入法不能转换到中文.而且这个问题似乎没有什么规 ...
- Windows上的音频采集技术
在制作发布端的时候,需要采集到声卡的输出信号,以便与麦克风的输入信号进行混音,对于音频处理的技术,主要有如下几种: 采集麦克风输入 采集声卡输出 将音频数据送入声卡进行播放 对多路音频输入进行混音处理 ...
最新文章
- Springboot 多文件上传
- VIPER 和 MVVM 到底有什么区别
- java bat 运行 jar文件_运行bat文件启动java的jar且不弹出DOS窗口,后台运行java的jar包...
- 4 在vCenter Server安装View Composer组件
- 计算机编程人员辛苦吗,全国工资下来了,程序员工资为什么这么高?你是不知道多辛苦?...
- navicat为什么收费,用的人还是不少
- 【安卓8】文件的读写
- HashTable源码简单介绍
- linux系统开机图片修改,linux开机logo 和 android开机logo 的修改
- plsql32位链接64位oracle,32位PLSQL_Developer连接oracle11g_64位
- 有机农业产品宣传介绍PPT模板
- 大一c语言餐馆叫号系统,专业体检中心排队叫号系统厂家
- 有监督学习与无监督学习的区别
- 一篇散文简单的了解Redis
- Error 遇到错误:请求通道在等待 00:01:00 以后答复时超时。增加传递给请求调用的超时值,或者增加绑定上的 SendTimeout 值。分配给此操作的时间可能已经是更长超时的一部分
- 教你解决路由黑洞5招
- 解决在iOS9上安装的软件显示未受信任的企业级开发者
- QVector元素增删改
- Java类型转换的细节
- 绿联扩展坞拆解_用过才知道,华为P30搭配绿联扩展坞可实现众多有趣玩法