DuckingMediaPlayer

此範例應用程式會實作媒體播放機來示範串流衰減,其中顯示系統所提供的預設衰減行為、退出宣告鴨子事件,以及在收到鴨子事件時實作自定義處理。 此範例必須與 DuckingCaptureSample 搭配使用。 如需有關躲避或串流衰減的詳細資訊,請參閱 預設的鴨子體驗

本主題包含下列各節。

描述

此範例示範下列功能。

  • DirectShow 播放媒體檔案。
  • WASAPI 用於串流管理和處理躲避事件。

需求

Products 版本
Windows SDK Windows 7
Visual Studio 2008

 

下載範例

此範例可在下列位置取得。

Location 路徑/URL
Windows SDK \Program Files\Microsoft SDKs\Windows\v7.0\Samples\Multimedia\Audio\DuckingMediaPlayer\...

 

建置範例

若要建置 DuckingMediaPlayer 範例,請使用下列步驟:

  1. 在 Visual Studio 2008 中開啟DuckingMediaPlayer.sln。
  2. 從視窗中,選取 [ 偵錯 ] 或 [發行 方案組態],從功能表欄選取 [建 置] 功能表,然後選取 [ 置] 選項。 如果您未從 SDK 的 CMD 殼層開啟 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 範例