使用“捕捉缓冲区”

捕捉一个声音包括以下步骤:

1.通过调用 IDirectSoundCaptureBuffer8::Start 方法启动缓冲区。正规来说,你应该设置 DSCBSTART_LOOPING 作为dwFlags参数,这样这个缓冲区将持续运行而不是当到达缓冲区末尾后就停止。从输入设备上获取的音频数据从缓冲区起始处开始填充。

2.等待直到达到期望的数据量。一个决定什么时候捕捉指针到达特定的位置办法,参见 Capture Buffer Notification。

3.当达到足够的数据量时,通过调用IDirectSoundCaptureBuffer8::Lock方法锁定一部分捕捉缓冲区。
     为了确保你试图锁定的内存区域不是那些将被用于捕捉的区域,你可以首先通过调用IDirectSoundCaptureBuffer8::GetCurrentPosition方法得到读指针的位置。
     你把将要读取的内存块的大小和偏移量作为参数传给Lock方法。这个方法返回一个指向这个内存块起始地址的指针和这一块的大小。如果这块区域从缓冲区末尾环绕到起始处,那么将会返回两个指针,第一个指针用于这块区域的每一个部分。如果锁定的内存区域没有环绕则第二个指针为NULL。

4.使用由Lock方法返回的地址和块大小,从缓冲区中复制数据。

5.使用IDirectSoundCaptureBuffer8::Unlock方法对缓冲区解锁。

6.重复2~5步,直到你准备停止捕捉数据。然后调用IDirectSoundCaptureBuffer8::Stop方法。

查看其它:
      导 言
      1.枚举“捕捉设备”
      2.创建“捕捉设备对象”
      3.“捕捉设备”性能
      4.创建一个“捕捉缓冲区”
      5.“捕捉缓冲区”信息
      6.“捕捉缓冲区”通知
      7. “捕捉缓冲区”特效
      8.使用“捕捉缓冲区”
      9.写入到WAV文件

波形捕捉:(8)使用“捕捉缓冲区”相关推荐

  1. 【ArcGIS风暴】捕捉VS经典捕捉,谁更有用武之地?

    几乎所有的GIS软件都具有捕捉功能!今天我们一起来聊一聊ArcGIS软件中的捕捉功能吧. ArcGIS软件中有两个重要的捕捉工具:捕捉和经典捕捉. 目录 一.捕捉(Snapping) 1.捕捉类型 2 ...

  2. OBS窗口捕捉、显示器捕捉黑屏解决办法

    OBS 窗口捕捉.显示器捕捉黑屏解决办法 问题描述 主要原因 解决方法 问题描述 下载OBS想对屏幕进行录制,然而却全程黑屏,更改兼容性设置后有时会显示鼠标和word中设置栏的文本. 主要原因 因为O ...

  3. 扑捉和捕捉的区别照相_CAD捕捉和对象捕捉的区别,两者有什么不同?

    有很多用户反馈不清楚CAD的捕捉和对象捕捉有什么不同,一般使用过这两个工具的应该都能明白两者的区别.捕捉和对象捕捉的区别,主要有三点:捕捉点不同.定位不同.前提不同 捕捉点不同 所谓捕捉点不同,是指两 ...

  4. cad捕捉不到标注线上的点_为什么CAD的对象捕捉打开了却捕捉不到任何点?

    捕捉失效,你遇到过吗?前两天网友遇到这张问题,原因连我都没有想到,不知道大家有没有遇到过. 当时群里网友问是不是开了栅格捕捉或极轴追踪,栅格捕捉或极轴追踪有时候会干扰捕捉,但从网友发的视频来看画线的时 ...

  5. python中使用什么来实现异常捕捉_python 异常捕捉

    python中捕捉异常常用句式try...except. try 语句按照如下方式工作: 首先,执行 try 子句(在关键字 try 和关键字 except 之间的语句). 如果没有异常发生,忽略 e ...

  6. java怎么捕捉游戏窗口_捕捉桌面上的窗口信息

    今天我为大家带来一个有趣的例子,有点像Spy++的功能,通过鼠标在屏幕上移动,并实时捕捉指定坐标点处的窗口信息. 窗口信息包括窗口标题,窗口句柄,窗口类名,以及呈现所捕捉窗口的缩略图. 现在我们不妨来 ...

  7. 全新升级版动作捕捉系统:捕捉更精准、数据更稳定、功能更完善

    ​动作捕捉系统 VDMocap Studio动捕系统,是一款由广州虚拟动力研发的,配套VIRDYN系列动捕设备专用的高级版动作捕捉软件,具有数据精准稳定.实时可视化.轻松回放和高效处理运动捕捉数据等功 ...

  8. cad捕捉不到标注线上的点_我的CAD,突然画线,标注时 放大了捕捉点总是捕捉不到,而且老是在跳!不听使唤那种?怎么回事?这是?...

    回答: 1.CAD2004-CAD2014各个版本之间操作都一样,这里以CAD2012为例.打开 CAD, 转到绘图界面, 下面的操作有一个快捷方式. 2.在此快捷方式区域中, 右键单击, 在弹出的选 ...

  9. android 捕捉 异常 崩溃 捕捉 crash

    转载时请记得标明源地址:http://my.oschina.net/lijindou/blog demo  的 源码 地址:http://pan.baidu.com/s/1mhDsJqg 大家应该 知 ...

  10. 15、PIC32系列-输入捕捉ICAP

    PIC32系列-输入捕捉ICAP 1.PIC32参考资源 2.输入捕捉简介 3.状态和寄存器 4.使用Harmony工具生成输入捕捉代码 5.实际代码分析 6.实验验证 1.PIC32参考资源 PIC ...

最新文章

  1. 我的JavaScript学习笔记
  2. C 的大致运行原理。
  3. python前端学习-------Flask框架基础(建议收藏)
  4. VC6++ output :error executing c:\windows\system32\cmd.exe.
  5. 博弈论(基础概念+例题)
  6. 【每日一题】8月4日题目精讲—购物
  7. Eclipse Qt开发环境的建立【转】
  8. FFT分析的加窗和重叠
  9. php global没用,global php 不起作用怎么办
  10. setCompoundDrawables和setCompoundDrawablesWithIntrinsicBounds区别
  11. TED如何掌控你的时间(第二天)
  12. HTML 学习笔记一
  13. 第七次全国人口普查公报[1](第六号) ——人口受教育情况
  14. matlab qpsk调制程序,qpsk调制与解调系统的matlab实现
  15. 用css的animation动画属性来实现一个H5场景动态电子邀请函
  16. 产品分析 淘宝、京东、平多多
  17. MATLAB打开后一直在初始化,或者初始化很慢问题
  18. 计算机总是蓝屏怎么解决办法,笔记本电脑总蓝屏如何解决_笔记本频繁蓝屏怎么办-win7之家...
  19. Windows11之Dev-C++超详细下载安装与使用教程
  20. 注册表设置开机自启项

热门文章

  1. Servlet Cookie 处理
  2. 为什么php都用mysql,PHP MySQL为什么?
  3. oracle进入rman报错,Oracle学习系列之Rman学习(三)
  4. centos 程序 mysql_Centos 源码安装 MySQL
  5. 今天被公司安排给候选者进行初面,分享我的6道面试题
  6. UI设计为什么要使用Figma?
  7. 计算机专业学生前端该怎么自学?
  8. 中级联选择中多级选择方法使用_PCB加工中,使用选择性波峰焊的优缺点是什么?...
  9. STM8单片机ADC模拟看门狗功能实现
  10. linux内存管理(九)-缺页异常分析