使用DirectSound进行PCM声音采集
来源:互联网 发布:逆光源网络剧免费观看 编辑:程序博客网 时间:2024/06/05 22:48
msdn有directsound函数的讲解,网上有类似流程的例子。我就不说废话了哈,直接说一下步骤, 因为步骤清楚了,自然写起来就不那么费劲了。^ 。^
第一步:初始化 CoInitialize();
第二步:创建一个LPDIRECTSOUNDCAPTURE8类型的设备,我用的DirectSoundCaptureCreate8()
第三步:创建一个LPDIRECTSOUNDCAPTUREBUFFER类型的buffer对象,CreateCaptureBuffer()
第四部:用LPDIRECTSOUNDCAPTUREBUFFER类型的对象,query一个LPDIRECTSOUNDCAPTUREBUFFER8类型的对象。
第五步:
5.1设置提醒事件,就是在什么时间自己可以去缓冲区提取数据。用LPDIRECTSOUNDCAPTUREBUFFER8类型的对象,query一个LPDIRECTSOUNDNOTIFY8类型的对象。
5.2创建时间, createevent()
5.3描述事件的提醒,包含什么时间取数据,以及event的句柄。其类型为DSBPOSITIONNOTIFY。
5.4设置事件提醒,LPDIRECTSOUNDNOTIFY8中的SetNotificationPositions()方法。
第六步:启动录音,LPDIRECTSOUNDCAPTUREBUFFER8的start方法
第七步:对数据进行操作
7.1等待设置事件的发生 :MsgWaitForMultipleObjects
7.2对数据锁操作:LPDIRECTSOUNDCAPTUREBUFFER8中的lock方法
7.3拷贝数据
7.4数据解锁:LPDIRECTSOUNDCAPTUREBUFFER8中的unlock方法
需要注意的是,采集的缓冲是一个环形缓冲区。对数据操作时要加以处理。
网上的很多例子都几乎都一样- -~ 这里给一个参考的网址:http://lgy-047.blog.163.com/blog/static/6134656520139109334568/
- 使用DirectSound进行PCM声音采集
- 使用DirectSound进行PCM声音采集
- DirectSound采集播放声音技术文档
- 使用DirectSound播放PCM音频数据
- 使用directsound播放pcm流文件.txt
- 使用AudioRecord实现声音采集
- 声音采集
- DirectSound 播放声音杂音问题.
- DirectSound 播放声音杂音问题.
- Android使用AudioRecord采集声音时声音播放很快解决方案
- directsound抓取麦克风PCM数据封装类
- DirectSound抓取麦克风PCM数据封装类
- directsound抓取麦克风PCM数据封装类
- 通过DirectSound实时播放PCM+混音
- directsound抓取麦克风PCM数据封装类
- [java] java pcm and android pcm. PCM声音
- linux alsa pcm 播放声音
- WAV声音档转PCM
- 算法之旅,直奔<bitset>之二 size
- maven 配置
- 数据库-Oracle-plsql(一)
- 数据分析≠Hadoop+NoSQL,不妨先看完善现有技术的10条捷径(分享)
- java invoke 反射的使用方法
- 使用DirectSound进行PCM声音采集
- 新浪微博的Tab滑动效果
- 利用 Cache_Lite代替codeigniter中的cache功能, --- ci 缓存扩展
- Navicat for mysql、SQL Server、Oracle
- valgrind -- 安装 -- 缺少 libc6-dbg
- Cookie跨域操作
- SHELL:echo -e "\033[字背景颜色;字体颜色m字符串\033[0m"
- CocoStudioUI中的UI事件机制分析
- amazon iam