Skip to main content

CreateCaptureAudioStateMonitorForCategoryAndDeviceRole

创建 IAudioStateMonitor 的新实例,用于监视指定类别且具有指定角色的所有音频捕获流的音频级别。

Syntax

Parameters

category
Type: AUDIO_STREAM_CATEGORY
AUDIO_STREAM_CATEGORY 枚举的一个成员,用于指定要监视的音频捕获流的类别。 role
Type: ERole
ERole 枚举的一个成员,用于指定要监视的音频捕获流的角色。 audioStateMonitor _Out_
Type: IAudioStateMonitor**
此输出参数将填充所创建的 IAudioStateMonitor 对象。

Return value

如果方法成功,则返回 S\_OK

Remarks

这是用于创建并返回 AudioStateMonitor 实例的其中一个函数。 对于捕获流和呈现流,各有四个变体,用于确定进程是否可以针对给定角色执行以下操作之一:
  • 捕获或呈现任意类别的任意音频
  • 捕获或呈现特定类别的音频
  • 将特定类别的音频捕获或呈现到特定终结点。
    终结点可以通过 MMDevice ID(使用 IMMDevice::GetId() 获取)指定,也可以通过其 SWD ID(使用 Windows.Devices.EnumerationWindows.Media.Devices.MediaDevice 获取)指定
  • 将特定类别的音频捕获或呈现到默认终结点
请思考以下场景:游戏仅在确定操作系统策略不会将音频静音时,才启用其游戏内 GameChat 功能。为此,游戏在默认通信终结点上为 AudioCategory_GameChat 流类别注册 SoundLevel 通知。 如果此类别的 SoundLevel 被设置为 “Muted”,游戏将停止其 GameChat 会话;如果 SoundLevel 是其他任何值,游戏将选择启用其 GameChat 流。 以下代码示例演示了游戏如何为此场景创建适当的 IAudioStateMonitor 对象。

Requirements

头文件: Audiostatemonitorapi.h 库: Windows.Media.MediaControl.lib 支持的平台: Windows、XBOX One 系列主机和 XBOX Series 主机

See also

AUDIO_STREAM_CATEGORY 关于 WASAPI WASAPI
最后修改于 2026年8月31日