RenderExclusiveTimerDriven
此範例應用程式會使用核心音訊 API,將音訊數據轉譯為使用者指定的輸出裝置。 此範例示範以獨佔模式呈現用戶端的定時器驅動緩衝處理。 針對獨佔模式數據流,用戶端會與音訊裝置共用端點緩衝區。
本主題包含下列各節。
描述
此範例示範下列功能。
- 多媒體裝置列舉和選取的MMDevice API 。
- 適用於串流管理作業的 WASAPI。
需求
Products | 版本 |
---|---|
Windows SDK | Windows 7 |
Visual Studio | 2008 |
下載範例
此範例可在下列位置取得。
Location | 路徑/URL |
---|---|
Windows SDK | \Program Files\Microsoft SDKs\Windows\v7.0\Samples\Multimedia\Audio\RenderExclusiveTimerDriven\... |
建置範例
若要建置 RenderExclusiveTimerDriven 範例,請使用下列步驟:
- 開啟 Windows SDK 的 CMD 殼層,並變更為 RenderExclusiveTimerDriven 範例目錄。
- 在 RenderExclusiveTimerDriven 目錄中執行 命令
start WASAPIRenderExclusiveTimerDriven.sln
,以在 Visual Studio 視窗中開啟 WASAPIRenderExclusiveTimerDriven 專案。 - 從視窗中,選取 [ 偵錯 ] 或 [發行 方案組態],從功能表欄選取 [建 置] 功能表,然後選取 [ 建 置] 選項。 如果您未從 SDK 的 CMD 殼層開啟 Visual Studio,Visual Studio 將無法存取 SDK 建置環境。 在此情況下,除非您明確設定項目檔 WASAPIRenderExclusiveTimerDriven.vcproj 中使用的環境變數 MSSdk,否則不會建置此範例。
檢視範例檔案
如果您成功建置示範應用程式,就會產生可執行檔WASAPIRenderExclusiveTimerDriven.exe。 若要執行它,請在命令視窗中輸入 WASAPIRenderExclusiveTimerDriven
,後面接著必要或選擇性自變數。 下列範例示範如何在預設控制台裝置上指定播放持續時間來執行範例。
WASAPIRenderExclusiveTimerDriven.exe -d 20 -console
下表顯示自變數。
Argument | 描述 |
---|---|
-? | 顯示說明。 |
-h | 顯示說明。 |
-f | Hz 中的正弦波頻率。 |
-l | 以毫秒為單位的音訊轉譯延遲。 |
-D | 以秒為單位的正弦波持續時間。 |
-m | 停用 MMCSS 的使用。 |
-安慰 | 使用預設主控台裝置。 |
-通信 | 使用預設通訊裝置。 |
-多媒體 | 使用預設多媒體裝置。 |
-端點 | 使用參數值中指定的端點標識碼。 |
如果應用程式在沒有自變數的情況下執行,它會列舉可用的裝置,並提示使用者選取轉譯會話的裝置。 在使用者指定裝置之後,應用程式會在 440 Hz 轉譯正弦波 10 秒。 您可以藉由指定 -f 和 -d 參數值來修改這些值。
RenderExclusiveTimerDriven 示範定時器驅動緩衝。 在此模式中,客戶端必須等候一段時間(以毫秒為單位的 -d 參數值所指定的延遲一半)。 當用戶端喚醒時,在處理期間中一半,它會從引擎提取下一組樣本。 在緩衝迴圈中的每個處理傳遞之前,客戶端必須找出要轉譯的數據量,讓數據不會超過緩衝區。
啟用事件驅動緩衝處理,即可處理在指定裝置上播放的音訊數據。 此模式會在 RenderExclusiveTimerDriven 範例中示範。
如需轉譯數據流的詳細資訊,請參閱 轉譯數據流。
相關主題