zoukankan      html  css  js  c++  java
  • 波形捕捉:(2)创建捕捉设备对象

    创建“捕捉设备对象”

          你可以通过调用 DirectSoundCaptureCreate8 DirectSoundFullDuplexCreate8 函数来创建一个捕捉设备对象。这两个函数都获取一个指向IDirectSoundCapture8 接口的指针。

          DirectSoundCaptureCreate 的lpcGUID参数或 DirectSoundFullDuplexCreate8 的pcGuidRenderDevice参数可以是一个由枚举得到的GUID,或者是如下预定义的GUID之一:

    GUID Description
    DSDEVID_DefaultCapture 系统默认的声音捕捉设备。你也可以通过传递一个NULL指针而不是设备GUID来指定一个设备。
    DSDEVID_DefaultVoiceCapture 默认声音沟通设备。通常情况下,这是一个辅助设备如带麦克风的USB耳机。
          如果当前没有设备驱动,则调用失败。

          你也可以使用 CoCreateInstance 函数来创建一个对象。这个过程与创建设备对象类似。步骤如下:
          1.在应用程序启动时通过调用 CoInitializeEx 函数初始化COM对象
    Code
          2.通过调用 CoCreateInstance 方法和 IDirectSound8::Initialize 方法创建设备对象,而不是使用 DirectSoundCreate8 函数
    Code
    CLSID_DirectSound8 是DirectSound驱动对象类的类标识符,IID_IDirectSound8 是接口标识符。lpds参数接收这个接口的指针。
          3.调用 IDirectSound8::Initialize 方法来关联对象和设备。这个方法使用的参数与 DirectSoundCreate8 使用的设备GUID参数相同。
    Code
          4.在你结束应用程序的时候,通过调用 CoUninitialize 函数来结束COM库,如下:
          CoUninitialize();

          如果你使用 CoCreateInstance,那么用户在控制面板中选择的默认捕捉设备对象将被创建。

          如果你想要播放设备对象和捕捉设备对象同时存在,那么你应该在创建和初始化捕捉设备对象前创建并初始化播放设备对象,或者使用 DirectSoundFullDuplexCreate8。

          有些音频设备默认没有设定为全双工音频。如果你的应用程序在创建和初始化播放设备对象和捕捉设备对象时出现问题,你应该建议用户检查音频设备属性,从而确保全双工已经被启用了。 

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

  • 相关阅读:
    LeetCode 88. Merge Sorted Array
    LeetCode 75. Sort Colors
    LeetCode 581. Shortest Unsorted Continuous Subarray
    LeetCode 20. Valid Parentheses
    LeetCode 53. Maximum Subarray
    LeetCode 461. Hamming Distance
    LeetCode 448. Find All Numbers Disappeared in an Array
    LeetCode 976. Largest Perimeter Triangle
    LeetCode 1295. Find Numbers with Even Number of Digits
    如何自学并且系统学习计算机网络?(知乎问答)
  • 原文地址:https://www.cnblogs.com/stg609/p/1314020.html
Copyright © 2011-2022 走看看