波形捕捉:(6)“捕捉缓冲区”通知

简介:

“捕捉缓冲区”通知



      想要定期的将数据从“捕捉缓冲区”复制出来,你的应用程序必须知道什么时候这个读指针(读指针的位置就是可以安全读取数据的最高位置)到达缓冲区中特定的位置。获取这个信息的一个办法是通过IDirectSoundCaptureBuffer8::GetCurrentPosition 方法轮询读指针的位置。另一种更有效的办法是使用通知(notification)。使用 IDirectSoundNotify8::SetNotificationPositions 方法,你可以在缓冲区中设置若干个点,在这些点上会触发事件。你不能在缓冲区正在使用的时候设置它。

      首先,你必须得到 IDirectSoundNotify8 接口。你可以通过使用缓冲区对象的 QueryInterface 方法得到。

      使用Win32  CreateEvent 方法为每一个通知的位置创建一个事件对象。将这个事件的句柄放置在一个 DSBPOSITIONNOTIFY 结构体的 hEventNotify 成员中。在这个结构体的 dwOffset 成员中,指定在缓冲区中你想要事件被触发的偏移量。如果你想要设置多个通知位置那么就传递这个结构体(或结构体数组)的地址给 SetNotificationPositions方法。

     下面的例子在一秒钟的缓冲区中设置了三个通知位置。第一个事件将在读指针接近缓冲区中点的时候被触发,另一个事件将在读指针缓冲区终点的时候被触发,第三个则会在捕捉停止的时候被触发。

ContractedBlock.gif Code

 

 

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







本文转自stg609博客园博客,原文链接:http://www.cnblogs.com/stg609/archive/2008/10/22/1314227.html,如需转载请自行联系原作者

目录
相关文章
|
3月前
|
数据采集 存储 数据处理
LabVIEW利用旋转编码器脉冲触发数据采集
LabVIEW利用旋转编码器脉冲触发数据采集
49 0
|
5月前
|
存储 Linux
【linux进程信号(二)】信号的保存,处理以及捕捉
【linux进程信号(二)】信号的保存,处理以及捕捉
|
传感器 索引
预处理信号——将信号与不同开始时间对齐
预处理信号——将信号与不同开始时间对齐
148 0
预处理信号——在测量中找到信号
预处理信号——在测量中找到信号
54 0
|
JavaScript 前端开发
简单解析事件捕捉
简单解析事件捕捉 上篇博客说到了事件冒泡,其实在JavaScript中,说到事件冒泡还有两个个不得不提的事件捕获和默认事件,我们先来说一下事件捕获。效果如下图: 在这里插入图片描述 HTML代码: <div class="box1"> <div class="box2"> <div class="box3"> <div class="box4"></div> </div> </div> </div> 1 2 3 4 5
简单解析事件捕捉
模拟和混合信号位置识别
本文研究全球及中国市场模拟和混合信号位置识别现状及未来发展趋势,侧重分析全球及中国市场的主要企业,同时对比北美、欧洲、中国、日本、东南亚和印度等地区的现状及未来发展趋势
3D 动作捕捉解决方案
本文研究全球及中国市场3D 动作捕捉解决方案现状及未来发展趋势,侧重分析全球及中国市场的主要企业,同时对比北美、欧洲、中国、日本、东南亚和印度等地区的现状及未来发展趋势