Skip to main content

CreateCaptureAudioStateMonitorForCategoryAndDeviceRole

建立 IAudioStateMonitor 的新執行個體,以監視指定類別且具有指定角色之所有音訊擷取串流的音訊層級。

語法

參數

category
類型: AUDIO_STREAM_CATEGORY
AUDIO_STREAM_CATEGORY 列舉的成員,指定要監視的音訊擷取串流類別。 role
類型: ERole
ERole 列舉的成員,指定要監視的音訊擷取串流角色。 audioStateMonitor _Out_
類型: IAudioStateMonitor**
此輸出參數會填入所建立的 IAudioStateMonitor 物件。

傳回值

如果方法成功,會傳回 S\_OK。

備註

這是建立並傳回 AudioStateMonitor 執行個體的函式之一。 擷取串流和轉譯串流各有四種變化,用來判斷處理序是否能針對指定角色執行下列其中一項:
  • 擷取或轉譯任何類別的任何音訊
  • 擷取或轉譯特定類別的音訊
  • 擷取或轉譯特定類別的音訊,並傳送到特定端點。
    端點可以使用 MMDevice ID (使用 IMMDevice::GetId() 取得) 指定,或使用其 SWD ID (使用 Windows.Devices.Enumeration 或 Windows.Media.Devices.MediaDevice 取得) 指定
  • 擷取或轉譯特定類別的音訊,並傳送到預設端點
請考慮下列案例:遊戲只有在確知音訊不會因 OS 原則而被靜音時,才會啟用遊戲內的 GameChat 功能。為此,遊戲會在預設通訊端點上,註冊 AudioCategory_GameChat 串流類別的 SoundLevel 通知。 如果此類別的 SoundLevel 設定為 ‘Muted’,遊戲會停止其 GameChat 工作階段。如果 SoundLevel 設定為其他任何值,遊戲會選擇啟用其 GameChat 串流。 下列程式碼範例示範遊戲如何為此案例建立適當的 IAudioStateMonitor 物件。

需求

標頭: Audiostatemonitorapi.h 程式庫: Windows.Media.MediaControl.lib 支援的平台: Windows、XBOX One 系列主機和 XBOX Series 主機

另請參閱

AUDIO_STREAM_CATEGORY 關於 WASAPI WASAPI
Last modified on October 6, 2026