DuckingMediaPlayer

此示例应用程序通过实现一个媒体播放器来演示流衰减,该播放器显示系统提供的默认衰减行为,选择退出躲避事件,并在收到鸭子事件时实现自定义处理。 此示例必须与 DuckingCaptureSample一起使用。 有关躲避或流衰减的详细信息,请参阅 默认鸭子体验

本主题包含以下部分。

描述

此示例演示了以下功能。

  • DirectShow 播放媒体文件。
  • WASAPI 流管理和处理躲避事件。

要求

产品 版本
Windows SDK Windows 7
Visual Studio 2008

 

下载示例

此示例在以下位置可用。

位置 路径/URL
Windows SDK \Program Files\Microsoft SDKs\Windows\v7.0\Samples\Multimedia\Audio\DuckingMediaPlayer\...

 

生成示例

若要生成 DuckingMediaPlayer 示例,请使用以下步骤:

  1. 在 Visual Studio 2008 中打开DuckingMediaPlayer.sln。
  2. 在窗口中,选择 调试发布 解决方案配置,从菜单栏中选择 生成 菜单,然后选择 生成 选项。 如果未从 SDK 的 CMD shell 打开 Visual Studio,Visual Studio 将无法访问 SDK 生成环境。 在这种情况下,除非显式设置在项目文件 DuckingMediaPlayer.vcproj 中使用的环境变量 MSSdk,否则此示例不会生成。

运行示例

如果成功生成应用程序,则会生成可执行文件 DuckingMediaPlayer.exe。 若要运行它,请从 调试 菜单中选择“开始调试”“开始调试” 或在命令窗口中键入 DuckingMediaPlayer

若要查看躲避的演示,必须同时执行 DuckingMediaPlayer 和 DuckingCaptureSample。 DuckingCaptureSample 打开通信流,并指示系统生成躲避事件。 当发生躲避事件时,系统将通知 DuckingMediaPlayer,媒体播放器执行用户请求的作。

若要禁用躲避行为,请执行以下作:

  1. 在 DuckingCaptureSample 窗口中,选择 使用默认输入设备,然后单击 “开始” 以从通信设备启动捕获会话。
  2. 在 DuckingMediaPlayer 上,选择要播放的媒体文件,并将躲避选项指定为 选择退出鸭子

请注意,媒体文件在没有任何中断的情况下播放。 系统打开通信流时生成的事件将被忽略。

若要演示系统提供的默认躲避行为,请执行以下作:

  1. 从控制面板中选择 声音 选项。 在“通信”选项卡上,选择“将其他声音的音量减少 80%
  2. 在 DuckingCaptureSample 窗口中,选择 使用默认输入设备,然后单击 “开始” 以从通信设备启动捕获会话。
  3. 在 DuckingMediaPlayer 上,选择要播放的媒体文件,而无需选择任何躲避选项。
  4. 在 DuckingCaptureSample 窗口中,单击 停止 以停止通信流。

请注意,当 DuckingCaptureSample 打开通信流时,DuckingMediaPlayer 播放的媒体文件不会中断,但音量级别会降低。 当通信会话停止时,卷将重置为原始设置。 此流衰减行为是系统实现的默认躲避行为。

查看媒体播放器实现的自定义躲避行为:

  1. 在 DuckingCaptureSample 窗口中,选择 使用默认输入设备,然后单击 “开始” 以从通信设备启动捕获会话。
  2. 在 DuckingMediaPlayer 上,选择要播放的媒体文件,并将躲避选项指定为“在鸭子上暂停”
  3. 在 DuckingCaptureSample 窗口中,单击 停止 以停止通信流。

请注意,当 DuckingCaptureSample 打开通信流时,DuckingMediaPlayer 播放的媒体文件将暂停。 当通信会话停止时,播放将恢复。 此流衰减行为是由媒体播放器实现的躲避行为。

DuckingMediaPlayer 还演示如何将每个应用程序的音量控制与音量混音器集成。

有关流衰减功能的详细信息,请参阅 默认躲避体验

使用核心音频 API SDK 示例