遠端轉譯工作階段管理

已完成

Azure 遠端轉譯提供工作階段管理 REST API,以管理與雲端伺服器的互動及查詢遠端轉譯工作階段的相關資訊。 在 C# 和 C++ 中,您可以透過 RemoteRenderingClientRenderingSession 類別建立、更新和停止工作階段。 本單元說明如何管理遠端轉譯工作階段。

建立工作階段。

下列命令會要求建立工作階段。

Invoke-WebRequest -Uri "$endPoint/v1/accounts/$accountId/sessions/create" -Method Post -ContentType "application/json" -Body "{ 'maxLeaseTime': '4:0:0', 'models': [], 'size': 'standard' }" -Headers @{ Authorization = "Bearer $token" }

當您建立新的工作階段時,可使用 maxLeaseTime 參數來指定租用時間上限,範圍通常是在一到八個小時內。 租用時間上限是主機接受輸入的持續時間。 如有必要,您可以延長作用中工作階段的租用時間。

來自要求的回應會傳回 sessionId,讓您查詢工作階段的相關資訊。 UUID 和工作階段的一些基本資訊會保存 30 天,因此即使在工作階段停止後,仍可查詢此資訊。

連接到一個工作階段

工作階段準備就緒後,用戶端裝置就可以連線到該工作階段,並可傳送命令來載入和修改模型。 當 RenderingSession.IsConnectedtrue 時,RenderingSession.Connection 會傳回 RenderingConnection 的執行個體,其中包含載入模型、操作實體和查詢所呈現場景的資訊之函式。

您可以從單一應用程式建立、觀察和關閉任意數目的工作階段,但一次只有一個裝置可連線到遠端轉譯工作階段。 嘗試由其他裝置連線到工作階段失敗。 另一個裝置只能在工作階段停止之後連線。

因為遠端轉譯主機一次只能服務一個用戶端裝置,所以連線到工作階段的用戶端對轉譯內容具有獨佔控制權。 單一用戶端連線也表示轉譯效能永遠不會因控制項外部的原因而有所不同。

停止工作階段

工作階段會在租用時間上限到期或您手動停止工作階段時停止。 若要手動停止工作階段,您可以呼叫 RenderingSession.StopAsync。 工作階段也可能因為某些失敗而停止。 工作階段停止後,就不會再向您計費,而且會捨棄所有先前的狀態,例如已載入的模型。

工作階段停止之後,您可以使用 RenderingSession.SessionUuid() 查詢持續性工作階段識別碼。 應用程式可以使用工作階段識別碼呼叫 RemoteRenderingClient.OpenRenderingSessionAsync,以繫結至該工作階段並在本機快取。