PKEY_AudioEndpoint_GUID

PKEY_AudioEndpoint_GUID 属性提供与音频终结点设备对应的 DirectSound 设备标识符。 属性值是一个 GUID,客户端可以将其作为设备标识符提供给 DirectSound API 中的 DirectSoundCreateDirectSoundCaptureCreate 函数。 此值唯一标识系统中所有音频终结点设备的音频终结点设备。 有关 DirectSound 的详细信息,请参阅 DirectX SDK 文档。

PROPVARIANT 结构的 vt 成员设置为 VT_LPWSTR。

PROPVARIANT 结构的 pwszVal 成员指向一个以 null 结尾的宽字符字符串,该字符串包含标识 DirectSound 中音频终结点设备的 GUID。

如前所述, MMDevice API 支持 设备角色。 尽管 DirectSound 不直接支持设备角色,但 DirectSound 客户端可以使用 PKEY_AudioEndpoint_GUID 属性根据其设备角色选择 DirectSound 呈现或捕获设备。

例如,DirectSound 应用程序执行以下步骤来创建一个 DirectSound 设备,该设备对应于用户已向其分配 eMultimedia 角色的呈现终结点设备:

  1. 调用 IMMDeviceEnumerator::GetDefaultAudioEndpoint 方法以获取具有 eMultimedia 角色的呈现终结点设备的 IMMDevice 接口。
  2. 调用 IMMDevice::OpenPropertyStore 方法以获取 eMultimedia 设备的 IPropertyStore 接口。 有关 IPropertyStore 的详细信息,请参阅 Windows SDK 文档。
  3. 调用 IPropertyStore::GetValue 方法以获取PKEY_AudioEndpoint_GUID属性值。
  4. 将字符串格式的 GUID 中的属性值转换为 16 字节 GUID 结构。
  5. 使用 GUID 调用 DirectSoundCreate 函数,以创建具有 eMultimedia 角色的设备。

注意

PKEY_AudioEndpoint_GUID 是一个只读属性,而不考虑 IMMDevice::OpenPropertyStore 中应用程序请求的存储访问模式。 如果应用程序尝试使用 IPropertyStore::SetValue 设置值,则此调用将失败并显示E_ACCESSDENIED错误代码。

 

请注意,步骤 4 中生成的 16 字节 GUID 与在 DirectSound 设备枚举期间标识设备的设备 GUID 匹配。 DirectSoundEnumerate 函数枚举呈现终结点设备,DirectSoundCaptureEnumerate 函数枚举捕获终结点设备。 在任一情况下,设备 GUID 都是传递给枚举回调函数的第一个参数。 有关 DirectSound 枚举的详细信息,请参阅 DirectX SDK 文档。

有关使用 PKEY_AudioEndpoint_GUID 属性的代码示例,请参阅 DirectSound 应用程序的设备角色

要求

要求
最低受支持的客户端
Windows Vista [仅限桌面应用]
最低受支持的服务器
Windows Server 2008 [仅限桌面应用]
标头
Mmdeviceapi.h

请参阅

音频终结点属性

核心音频属性