語音應用程式範例
語音應用程式範例會示範使用狀態機器來建立彈性化的處理序。這個範例還會示範遞迴狀態和狀態初始化活動的使用方式。
這個語音應用程式是典型的互動語音回應 (Interactive Voice Response,IVR) 應用程式。在應用程式中使用的狀態機器工作流程會呈現典型的電話應用程式功能表,此功能表包含了可呈現該功能表之不同層級的不同狀態。在每個狀態中,只有特定事件是有效而且可呈現該功能表會提供的選項。
每個狀態都會提供兩種功能表選項:
結束對話的 '*' 功能表選項。
返回主功能表的 '9' 選項。
處理這些事件的事件處理常式會附加到根狀態機器。因此,這些事件處理常式都會由每個狀態繼承,而且在每個狀態中提供使用。
使用者介面包含了一系列與系統通訊的按鈕。在每個狀態中所啟用的只有這些按鈕的子集。這是使用狀態機器模型所提供的查詢功能所達成的。您可以探索這段程式碼,瞭解如何使用 StateMachineWorkflowInstance 來查詢狀態機器、擷取目前狀態,以及在目前狀態中屬於有效的事件。
若要建置範例
按一下此主題中的 [下載範例] 來下載範例。
這樣便會將範例專案擷取到本機硬碟上。
按一下 [開始],並依序指向 [程式集] 和 [Microsoft Windows SDK],再按一下 [CMD 殼層]。
移至範例的來源目錄。
在命令提示字元上,輸入 MSBUILD <Solution file name>。
執行範例
在 [SDK 命令提示字元] 視窗中,執行 SpeechUI\bin\debug 資料夾中的 .exe 檔案,該資料夾位於此範例的主要資料夾下方。
按一下 [開始電話工作階段]。
請注意以下各點:
這時所出現的文字會模擬來自電話的播音。
此時只會啟用對應至可用功能表選擇的按鈕。您可以選取任何功能表項目來瞭解狀態機器會如何回應。
[*] 和 [9] 按鈕永遠都是作用中。這是因為對應至這些按鈕的事件處理常式都是在根狀態機器層級進行處理。
請參閱
其他資源
Tutorial: Create a State Machine Workflow
State Machine Workflows
訂購狀態機器範例
Windows Workflow Foundation 範例
Copyright © 2007 by Microsoft Corporation. All rights reserved.