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 範例,請使用下列步驟:
- 在 Visual Studio 2008 中開啟DuckingMediaPlayer.sln。
- 從視窗中,選取 [ 偵錯 ] 或 [發行 方案組態],從功能表欄選取 [建 置] 功能表,然後選取 [ 建 置] 選項。 如果您未從 SDK 的 CMD 殼層開啟 Visual Studio,Visual Studio 將無法存取 SDK 建置環境。 在此情況下,除非您明確設定項目檔 DuckingMediaPlayer.vcproj 中使用的環境變數 MSSdk,否則不會建置此範例。
執行範例
如果您成功建置應用程式,就會產生可執行檔DuckingMediaPlayer.exe。 若要執行它,請從 [偵錯] 選單選取 [開始偵錯] 或 [啟動但不偵錯] ,或在命令視窗中輸入 DuckingMediaPlayer
。
若要檢視躲避的示範,您必須同時執行 DuckingMediaPlayer 和 DuckingCaptureSample。 DuckingCaptureSample 會開啟通訊串流,並向系統發出訊號以產生躲避事件。 當發生鴨子事件時,系統會通知系統 DuckingMediaPlayer,而媒體播放機會執行使用者所要求的動作。
若要停用躲避行為:
- 在 [DuckingCaptureSample] 視窗中,選取 [ 使用預設輸入裝置],然後按兩下 [ 開始 ] 以從通訊裝置啟動擷取會話。
- 在 [DuckingMediaPlayer] 上,選取要播放的媒體檔案,並將 [躲避] 選項指定為 [退出鴨子]。
請注意,媒體檔案會在不中斷的情況下播放。 系統在開啟通訊數據流時所產生的事件會被忽略。
若要示範系統提供的預設鴨子行為,請執行下列動作:
- 從控制面板選取 [ 音效] 選項。 在 [通訊] 索引標籤上,選取 [減少其他音效的音量 80%。
- 在 [DuckingCaptureSample] 視窗中,選取 [ 使用預設輸入裝置],然後按兩下 [ 開始 ] 以從通訊裝置啟動擷取會話。
- 在 [DuckingMediaPlayer] 上,選取要播放的媒體檔案,而不需選擇任何躲避選項。
- 在 [DuckingCaptureSample] 視窗中,按兩下 [ 停止 ] 以停止通訊數據流。
請注意,當 DuckingCaptureSample 開啟通訊數據流時,DuckingMediaPlayer 所播放的媒體檔案不會中斷播放,但音量層級會降低。 當通訊會話停止時,磁碟區會重設為原始設定。 此數據流衰減行為是系統所實作的預設躲避行為。
若要檢視媒體播放器所實作的自定義鴨子行為:
- 在 [DuckingCaptureSample] 視窗中,選取 [ 使用預設輸入裝置],然後按兩下 [ 開始 ] 以從通訊裝置啟動擷取會話。
- 在 [DuckingMediaPlayer] 上,選取要播放的媒體檔案,並將 [鴨子上暫停] 選項指定為 [暫停]。
- 在 [DuckingCaptureSample] 視窗中,按兩下 [ 停止 ] 以停止通訊數據流。
請注意,當 DuckingCaptureSample 開啟通訊數據流時,DuckingMediaPlayer 所播放的媒體檔案會暫停。 當通訊會話停止時,播放會繼續。 此數據流衰減行為是媒體播放器所實作的躲避行為。
DuckingMediaPlayer 也會示範如何將每個應用程式的音量控制與音量混音器整合。
如需串流衰減功能的詳細資訊,請參閱 預設鴨子體驗。
相關主題