IAudioSessionManager2::RegisterDuckNotification 方法 (audiopolicy.h)

RegisterDuckNotification 方法将应用程序注册到会话管理器,以接收躲避通知。

语法

HRESULT RegisterDuckNotification(
  LPCWSTR                      sessionID,
  IAudioVolumeDuckNotification *duckNotification
);

参数

sessionID

指向包含会话实例标识符的以 null 结尾的字符串的指针。 正在播放媒体流并想要提供自定义流衰减或躲避行为的应用程序,请传递自己的会话实例标识符。 有关详细信息,请参阅“备注”。

不希望更改其流但想要获取所有闪避通知的其他应用程序必须传递 NULL

duckNotification

指向 应用程序实现的 IAudioVolumeDuckNotification 接口的指针。 当音频系统引发躲避事件并将通知发送到已注册的应用程序时,将调用 实现。

返回值

如果该方法成功,则它会返回 S_OK。 如果失败,可能的返回代码包括但不限于下表中显示的值。

返回值 说明
E_POINTER
duckNotificationNULL
E_OUTOFMEMORY
由于内存不足,无法创建内部对象。

注解

Stream衰减躲避是 Windows 7 中的一项新功能。 在默认通信设备上打开新的通信流时,播放媒体流的应用程序可能会使流的行为有所不同。 例如,可以在打开新通信流时暂停原始媒体流。 若要为流衰减提供此自定义实现,应用程序可以通过调用 IAudioSessionControl::SetDuckingPreference 来选择退出默认流衰减体验,然后注册自身以在发生会话事件时接收通知。 对于流衰减,系统在默认通信设备上打开或关闭通信流时引发会话事件。 有关此功能的详细信息,请参阅 获取躲避事件

为了开始接收通知,应用程序调用 RegisterDuckNotification 方法,以向会话管理器注册其 IAudioVolumeDuckNotification 接口。 当应用程序不再需要通知时,它会调用 IAudioSessionManager2::UnregisterDuckNotification 方法来删除注册。

应用程序通过 IAudioVolumeDuckNotification 接口的方法接收有关躲避事件的通知。 应用程序实现 IAudioVolumeDuckNotification。 注册调用成功后,当发生会话事件时,系统会调用此接口的方法。

要求

要求
最低受支持的客户端 Windows 7 [仅限桌面应用]
最低受支持的服务器 Windows Server 2008 R2 [仅限桌面应用]
目标平台 Windows
标头 audiopolicy.h

另请参阅

IAudioSessionManager2

使用通信设备