閱讀英文

共用方式為


DuckingCaptureSample

此範例應用程式示範開啟和關閉通訊數據流,並導致應用程式可以實作數據流衰減的躲避事件。 此應用程式會實作聊天用戶端,該用戶端會使用核心音訊 API 從通訊裝置讀取音訊數據,並在輸出裝置上播放。

本主題包含下列各節。

描述

此範例示範下列功能。

需求

Products 版本
Windows SDK Windows 7
Visual Studio 2008

 

下載範例

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

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

 

建置範例

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

  1. 在 Visual Studio 2008 中開啟DuckingCaptureSample.sln。
  2. 從視窗中,選取 [ 偵錯 ] 或 [發行 方案組態],從功能表欄選取 [建 置] 功能表,然後選取 [ 置] 選項。 如果您未從 SDK 的 CMD 殼層開啟 Visual Studio,Visual Studio 將無法存取 SDK 建置環境。 在此情況下,除非您明確設定項目檔 DuckingCaptureSample.vcproj 中使用的環境變數 MSSdk,否則不會建置此範例。

執行範例

如果您成功建置應用程式,就會產生可執行檔DuckingCaptureSample.exe。 若要執行它,請從 [偵錯] 選單選取 [開始偵錯] 或 [啟動但不偵錯] ,或在命令視窗中輸入 DuckingCaptureSample

DuckingCaptureSample 為使用者提供兩個實作,從預設控制台裝置擷取音訊:WASAPI 和 Wave API。 若要啟動擷取工作階段,請選取模式,然後按兩下 應用程式的使用者介面上的 [啟動 ]。 若要結束會話,請按兩下 [ 停止]。 根據使用者指定的裝置(輸入或輸出),應用程式會使用MMDevice API來取得預設轉譯或擷取通訊裝置的參考。 使用者啟動聊天會話之後,應用程式會執行下列工作:

  • 以事件驅動模式建立和初始化音訊用戶端。
  • 將用戶端與事件句柄產生關聯,指出範例已準備好進行擷取或轉譯。
  • 設定傳輸的擷取客戶端和轉譯用戶端。
  • 建立聊天對話並啟動音訊引擎。

針對擷取音訊數據,使用每個處理階段,範例會使用擷取用戶端來取得緩衝區中可用的擷取數據總數、從預設輸入設備讀取數據,以及釋放封包,並讓緩衝區可供讀取下一組擷取的數據。

為了轉譯,應用程式會決定排入佇列以在擷取端點緩衝區中播放的數據量。 它會據此寫入緩衝區,並釋放緩衝區,以準備下一個處理階段,直到寫入所有數據為止。 若要轉譯,系統會預先註冊無訊息畫面格,以防止音訊引擎在啟動時發生問題。 DuckingCaptureSample 也會示範如何隱藏音量混音器中的轉譯數據流。

如需數據流衰減功能的詳細資訊,請參閱 使用通訊裝置

使用核心音訊 API 的 SDK 範例