波形捕捉:(4)创建一个“捕捉缓冲区”
来源:互联网 发布:淘宝客服售前流程 编辑:程序博客网 时间:2024/05/21 22:49
创建一个“捕捉缓冲区”
调用 IDirectSoundCapture8::CreateCaptureBuffer 方法创建一个捕捉缓冲区。
该方法的其中一个参数是一个 DSCBUFFERDESC 结构体,该结构体描述了你想得到的缓冲区的特性。该结构体的最后一个成员是一个 WAVEFORMATEX 结构体。这个结构体必须用具体的WAV格式来初始化。
注意:如果你的应用程序在播放声音的同时捕捉这些声音,当捕捉缓冲区的格式和主缓冲区的不一样,那么捕捉缓冲区的创建将会失败。其原因是有些声卡只有单一的时钟频率,不支持以两种不同的频率来捕捉和播放。
下面的函数创建了一个捕捉缓冲区,这个缓冲区将会容纳1秒钟的数据。注意:捕捉设备对象的接口要作为一个参数传入时,该接口必须通过DirectSoundCaptureCreate8 函数得到,而不是使用以前的 DirectSoundCaptureCreate 函数;否则这个缓冲区将不支持IDirectSoundCaptureBuffer8 接口。
调用 IDirectSoundCapture8::CreateCaptureBuffer 方法创建一个捕捉缓冲区。
该方法的其中一个参数是一个 DSCBUFFERDESC 结构体,该结构体描述了你想得到的缓冲区的特性。该结构体的最后一个成员是一个 WAVEFORMATEX 结构体。这个结构体必须用具体的WAV格式来初始化。
注意:如果你的应用程序在播放声音的同时捕捉这些声音,当捕捉缓冲区的格式和主缓冲区的不一样,那么捕捉缓冲区的创建将会失败。其原因是有些声卡只有单一的时钟频率,不支持以两种不同的频率来捕捉和播放。
下面的函数创建了一个捕捉缓冲区,这个缓冲区将会容纳1秒钟的数据。注意:捕捉设备对象的接口要作为一个参数传入时,该接口必须通过DirectSoundCaptureCreate8 函数得到,而不是使用以前的 DirectSoundCaptureCreate 函数;否则这个缓冲区将不支持IDirectSoundCaptureBuffer8 接口。
HRESULT CreateCaptureBuffer(LPDIRECTSOUNDCAPTURE8 pDSC,
LPDIRECTSOUNDCAPTUREBUFFER8* ppDSCB8)
{
HRESULT hr;
DSCBUFFERDESC dscbd;
LPDIRECTSOUNDCAPTUREBUFFER pDSCB;
WAVEFORMATEX wfx =
{WAVE_FORMAT_PCM, 2, 44100, 176400, 4, 16, 0};
// wFormatTag, nChannels, nSamplesPerSec, mAvgBytesPerSec,
// nBlockAlign, wBitsPerSample, cbSize
if ((NULL == pDSC) || (NULL == ppDSCB8)) return E_INVALIDARG;
dscbd.dwSize = sizeof(DSCBUFFERDESC);
dscbd.dwFlags = 0;
dscbd.dwBufferBytes = wfx.nAvgBytesPerSec;
dscbd.dwReserved = 0;
dscbd.lpwfxFormat = &wfx;
dscbd.dwFXCount = 0;
dscbd.lpDSCFXDesc = NULL;
if (SUCCEEDED(hr = pDSC->CreateCaptureBuffer(&dscbd, &pDSCB, NULL)))
{
hr = pDSCB->QueryInterface(IID_IDirectSoundCaptureBuffer8, (LPVOID*)ppDSCB8);
pDSCB->Release();
}
return hr;
}
- 波形捕捉:(4)创建一个“捕捉缓冲区”
- 波形捕捉:(5)“捕捉缓冲区”信息
- 波形捕捉:(6)“捕捉缓冲区”通知
- 波形捕捉:(2)创建捕捉设备对象
- 波形捕捉:(1)枚举"捕捉设备"
- 波形捕捉:(3)"捕捉设备"性能
- 波形捕捉
- 捕捉一个图像
- PWM输入模式捕捉4路PWM波形的周期和占空比讲解
- 信号捕捉(三)
- 捕捉异常(1)
- 捕捉异常(2)
- 捕捉异常(3)
- WinPcap基础知识(第三课:打开一个适配器捕捉数据包)
- STM32基础知识2-分享PWM输入模式捕捉4路PWM波形的周期和占空比
- 无法创建视频捕捉过滤器的解决办法
- 4、事件模型,冒泡,捕捉
- 【转】音频捕捉(directshow)
- 自动建立销售单
- 波形捕捉:(2)创建捕捉设备对象
- 找出包含有类型是某个特定的扩展类型的字段的表
- 波形捕捉:(3)"捕捉设备"性能
- debian linux的ssh终端下使vim显示颜色
- 波形捕捉:(4)创建一个“捕捉缓冲区”
- magento -- 如何设置使用magento的优惠券
- 波形捕捉:(5)“捕捉缓冲区”信息
- 急!!
- 波形捕捉:(6)“捕捉缓冲区”通知
- Javascript的命名空间namespace个人体会
- proftpd 1.3.2 解决客户端乱码问题
- Thunk 技术的一个改进(转)
- 日本人的礼节,日本小姐的热情