IAudioSessionManager2::RegisterDuckNotification 方法 (audiopolicy.h)
RegisterDuckNotification 方法将应用程序注册到会话管理器,以接收躲避通知。
语法
HRESULT RegisterDuckNotification(
LPCWSTR sessionID,
IAudioVolumeDuckNotification *duckNotification
);
参数
sessionID
指向包含会话实例标识符的以 null 结尾的字符串的指针。 正在播放媒体流并想要提供自定义流衰减或躲避行为的应用程序,请传递自己的会话实例标识符。 有关详细信息,请参阅“备注”。
不希望更改其流但想要获取所有闪避通知的其他应用程序必须传递 NULL。
duckNotification
指向 应用程序实现的 IAudioVolumeDuckNotification 接口的指针。 当音频系统引发躲避事件并将通知发送到已注册的应用程序时,将调用 实现。
返回值
如果该方法成功,则它会返回 S_OK。 如果失败,可能的返回代码包括但不限于下表中显示的值。
返回值 | 说明 |
---|---|
|
duckNotification 为 NULL。 |
|
由于内存不足,无法创建内部对象。 |
注解
Stream衰减或躲避是 Windows 7 中的一项新功能。 在默认通信设备上打开新的通信流时,播放媒体流的应用程序可能会使流的行为有所不同。 例如,可以在打开新通信流时暂停原始媒体流。 若要为流衰减提供此自定义实现,应用程序可以通过调用 IAudioSessionControl::SetDuckingPreference 来选择退出默认流衰减体验,然后注册自身以在发生会话事件时接收通知。 对于流衰减,系统在默认通信设备上打开或关闭通信流时引发会话事件。 有关此功能的详细信息,请参阅 获取躲避事件。
为了开始接收通知,应用程序调用 RegisterDuckNotification 方法,以向会话管理器注册其 IAudioVolumeDuckNotification 接口。 当应用程序不再需要通知时,它会调用 IAudioSessionManager2::UnregisterDuckNotification 方法来删除注册。
应用程序通过 IAudioVolumeDuckNotification 接口的方法接收有关躲避事件的通知。 应用程序实现 IAudioVolumeDuckNotification。 注册调用成功后,当发生会话事件时,系统会调用此接口的方法。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows 7 [仅限桌面应用] |
最低受支持的服务器 | Windows Server 2008 R2 [仅限桌面应用] |
目标平台 | Windows |
标头 | audiopolicy.h |