提供自定義的鴨子行為

應用程式可以退出退出 系統處理的預設鴨子體驗 ,並將它取代為自定義實作。

應用程式可以提供自定義的躲避體驗。 例如,Windows 媒體播放器 在通訊會話期間暫停目前的媒體串流,並在會話關閉時繼續播放,以提供自己的迴避體驗。 實作躲避的媒體應用程式範例隨附於 Windows SDK 範例中;如需詳細資訊,請參閱 DuckingMediaPlayer。 若要模擬開啟和關閉通訊串流以及產生鴨子事件的體驗,請參閱 DuckingCaptureSample,這也會隨附於 Windows SDK 範例中。

播放音效的媒體應用程式必須在系統中開啟和關閉時,注意通訊數據流。 您可以使用 MediaFoundation、DirectShow 或 DirectSound 來提供自定義實作,其使用核心音訊 API。 如果直接 WASAPI 用戶端知道通訊工作階段何時開始和結束,也可以覆寫預設處理。

若要提供自定義的躲避體驗,WASAPI 用戶端必須執行下列工作:

  1. 註冊以接收 來自躲避管理員的事件,這是處理與通訊串流變更相關通知的音訊系統的元件。 如需詳細資訊, 請取得鴨子事件

    注意

    如果客戶端已註冊以接收躲避通知,則鴨子管理員會停用系統提供的預設行為。 如果預設行為已明確停用(請參閱 停用預設鴨子體驗),且用戶端未提供替代行為,則應用程式不會經歷任何鴨子行為。

     

  2. 接聽鴨子管理員所傳送的鴨子事件通知,並執行所需的躲避行為。 如需實作鴨子行為的詳細資訊,請參閱 鴨子通知的實作考慮。

使用通訊裝置

默認的鴨子體驗

停用預設的鴨子體驗

鴨子通知的實作考慮

取得躲避事件