提供自定义闪避行为

应用程序可以选择退出系统处理的默认闪避体验,并将其替换为自定义实现。

应用程序可以提供自定义的闪避体验。 例如,Windows Media Player 通过在通信会话期间暂停当前媒体流和在会话关闭时恢复播放来提供自己的闪避体验。 Windows SDK 示例随附实现闪避的示例媒体应用程序;有关详细信息,请参阅 DuckingMediaPlayer。 若要模拟打开和关闭通信流以及生成闪避事件的体验,请参阅 Windows SDK 示例随附的 DuckingCaptureSample

在系统中打开和关闭通信流时,播放要衰减的声音的媒体应用程序必须注意通信流。 自定义实现可通过使用核心音频 API 的 MediaFoundation、DirectShow 或 DirectSound 来提供。 如果直接 WASAPI 客户端知道通信会话开始和结束的时间,它也可以覆盖默认处理方式。

若要提供自定义闪避体验,WASAPI 客户端必须执行以下任务:

  1. 注册以接收来自闪避管理器的闪避事件,闪避管理器是处理通信流更改相关通知的音频系统的组件。 有关详细信息,请参阅获取闪避事件

    注意

    如果客户端已注册接收闪避通知,则闪避管理器将禁用系统提供的默认行为。 如果默认行为被明确禁用(请参阅禁用默认闪避体验),并且客户端不提供替代行为,则应用程序不会遇到任何闪避行为。

     

  2. 侦听闪避管理器发送的闪避事件通知并采取所需的闪避行为。 有关实现闪避行为的详细信息,请参阅闪避通知实现注意事项

使用通信设备

默认闪避体验

禁用默认闪避体验

闪避通知的实施注意事项

获取闪避事件