当前位置:天才代写 > tutorial > C语言/C++ 教程 > 波形捕获:(8)利用“捕获缓冲区”

波形捕获:(8)利用“捕获缓冲区”

2017-11-03 08:00 星期五 所属: C语言/C++ 教程 浏览:490

捕获一个声音包罗以下步调:

1.通过挪用IDirectSoundCaptureBuffer8::Start要领启动缓冲区。正规来说 ,你应该配置DSCBSTART_LOOPING 作为dwFlags参数,这样这个缓冲区将一连运 行而不是当达到缓冲区末端后就遏制。从输入设备上获取的音频数据从缓冲区起 始处开始填充。

2.期待直到到达期望的数据量。一个抉择什么时候捕获指针达到特定的位置 步伐,拜见《波形捕获:(6)“捕获缓冲区”通知》。

3.当到达足够的数据量时,通过挪用IDirectSoundCaptureBuffer8::Lock方 法锁定一部门捕获缓冲区。

为了确保你试图锁定的内存区域不是那些将被用于捕获的区域,你可以首先 通过挪用IDirectSoundCaptureBuffer8::GetCurrentPosition要领获得读指针的 位置。

你把将要读取的内存块的巨细和偏移量作为参数传给Lock要领。这个要领返 回一个指向这个内存块起始地点的指针和这一块的巨细。假如这块区域从缓冲区 末端环抱到起始处,那么将会返回两个指针,第一个指针用于这块区域的每一个 部门。假如锁定的内存区域没有环抱则第二个指针为NULL。

4.利用由Lock要领返回的地点和块巨细,从缓冲区中复制数据。

5.利用IDirectSoundCaptureBuffer8::Unlock要领对缓冲区解锁。

6.反复2~5步,直到你筹备遏制捕获数据。然后挪用 IDirectSoundCaptureBuffer8::Stop要领。

 

    关键字:

天才代写-代写联系方式