DirectSound学习笔记(2):创建设备对象
2009-12-29 14:26
225 查看
创建设备对象
创建设备对象最简单的方式是使用 DirectSoundCreate8 函数。函数的第一个参数指定了与对象关联的设备的GUID。你能够通过枚举设备获取这个GUID,也可以传递以下GUID中的一个来指定一个默认设备。
如果没有列出任何设备,那么DirectSoundCreate8 的调用将会失败。 如果在VXD 驱动下没有任何声音设备,或者声音设备正处于一个使用标准Win32波形音频函数的应用程序的控制下,函数则返回错误。你必须为这种调用失败做好准备,使你的应用程序能以无声的状态继续运行,或者提示用户关闭正在使用声音设备的应用程序。 以下代码为默认设备创建了一个对象,并获得了IDirectSound8 接口: LPDIRECTSOUND8 lpds;
HRESULT hr = DirectSoundCreate8(NULL, &lpds, NULL)); 注意:DirectSoundCreate8 不要求调用CoInitialize 或CoInitializeEx。如果你的应用程序使用DMOs,它必须在创建任何对象前显式初始化COM。
如果你的应用程序采集声音,同时播放它们,你可以通过DirectSoundFullDuplexCreate8方便地创建播放和采集设备,以及播放和采集缓冲区。
你也可以使用标准COM函数创建设备对象,如:
1. 在你的应用程序开始的时候调用CoInitializeEx 来初始化COM。 HRESULT hr = CoInitializeEx(NULL, 0);
if (FAILED(hr))
LPDIRECTSOUND8 lpds;
hr = CoCreateInstance(&CLSID_DirectSound8,
NULL,
CLSCTX_INPROC_SERVER,
IID_IDirectSound8,
(LPVOID*) &lpds);
if (FAILED(hr))
hr = lpds->Initialize(NULL);
if (FAILED(hr))
CoUninitialize();
创建设备对象最简单的方式是使用 DirectSoundCreate8 函数。函数的第一个参数指定了与对象关联的设备的GUID。你能够通过枚举设备获取这个GUID,也可以传递以下GUID中的一个来指定一个默认设备。
GUID 定义 | 描述 |
DSDEVID_DefaultPlayback | 默认系统音频设备。你也可以传入一个空指针来指定这个设备。默认设备是枚举到的“主要DirectSound 驱动”。 |
DSDEVID_DefaultVoicePlayback | 默认声音通信设备。通常,这是一个辅助设备,如USB耳麦。 |
HRESULT hr = DirectSoundCreate8(NULL, &lpds, NULL)); 注意:DirectSoundCreate8 不要求调用CoInitialize 或CoInitializeEx。如果你的应用程序使用DMOs,它必须在创建任何对象前显式初始化COM。
如果你的应用程序采集声音,同时播放它们,你可以通过DirectSoundFullDuplexCreate8方便地创建播放和采集设备,以及播放和采集缓冲区。
你也可以使用标准COM函数创建设备对象,如:
1. 在你的应用程序开始的时候调用CoInitializeEx 来初始化COM。 HRESULT hr = CoInitializeEx(NULL, 0);
if (FAILED(hr))
LPDIRECTSOUND8 lpds;
hr = CoCreateInstance(&CLSID_DirectSound8,
NULL,
CLSCTX_INPROC_SERVER,
IID_IDirectSound8,
(LPVOID*) &lpds);
if (FAILED(hr))
hr = lpds->Initialize(NULL);
if (FAILED(hr))
CoUninitialize();
相关文章推荐
- DirectSound学习笔记(2):创建设备对象
- DirectSound学习笔记(2):创建设备对象
- 设备读写通用对象 Delphi下创建
- DX编程(1) — 创建D3D对象、D3D设备,渲染
- 在功能驱动程序中创建设备对象
- chapter 6.7: KMDF设备对象的创建和初始化
- 驱动视频:windows驱动讲稿1.5 - 创建设备对象
- 波形捕捉:(2)创建捕捉设备对象
- 编写程序从标准输入设备读入的元素数据建立一个int型vector对象,然后动态创建与该vector大小一致的数组,把vector对象的所有元素复制给该数组
- 波形捕捉:(2)创建捕捉设备对象
- chapter 6.6: UMDF 设备对象的创建和初始化
- CEPH RGW 设置 user default_placement为ssd-placement,优化100KB-200KB小文件性能,使用户创建的bucket对象放置到 SSD设备的Pool上。
- 波形捕捉:(2)创建捕捉设备对象
- 一个简单的NT驱动之创建设备对象函数(CreateDevice)
- sfilter的DriverEntry例程中创建的控制设备对象之作用
- 创建设备对象,用IoCreatDevice
- java基础-反射3(反射,反射创建对象,操作对象属性,调用对象方法)
- js创建对象的几种方法
- Linux ALSA声卡驱动之三:PCM设备的创建
- J2ME游戏:创建RecordStore对象