StatefulCallClient interface
定義可讓 CallClient <xref:%40azure%2Fcommunication-calling%23CallClient> 以具狀態使用的方法。 介面可讓您存取 Proxyed 狀態,也允許註冊狀態變更事件的處理常式。 如需狀態定義,請參閱 CallClientState。
狀態變更事件是由下列專案驅動:
- 從 <xref:%40azure%2Fcommunication-calling%23DeviceManager> API 傳回的資料。
- 從 <xref:%40azure%2Fcommunication-calling%23CallAgent> API 傳回的資料。
- 自動附加至各種 Azure 通訊呼叫物件的接聽程式:
- CallAgent 'incomingCall'
- CallAgent 'callsUpdated'
- DeviceManager 'videoDevicesUpdated'
- DeviceManager 'audioDevicesUpdated
- DeviceManager 'selectedMicrophoneChanged'
- DeviceManager 'selectedSpeakerChanged'
- 呼叫 'stateChanged'
- 呼叫 'idChanged'
- 呼叫 'isMutedChanged'
- 呼叫 'isScreenSharingOnChanged'
- 呼叫 'remoteParticipantsUpdated'
- 呼叫 'localVideoStreamsUpdated'
- IncomingCall 'callEnded'
- RemoteParticipant 'stateChanged'
- RemoteParticipant 'isMutedChanged'
- RemoteParticipant 'displayNameChanged'
- RemoteParticipant 'isSpeakingChanged'
- RemoteParticipant 'videoStreamsUpdated'
- RemoteVideoStream 'isAvailableChanged'
- TranscriptionCallFeature 'isTranscriptionActiveChanged'
- RecordingCallFeature 'isRecordingActiveChanged'
- Extends
方法
create |
轉譯 RemoteVideoStreamState 或 LocalVideoStreamState ,並將產生的 VideoStreamRendererViewState 儲存在相關的 RemoteVideoStreamState 或 LocalVideoStreamState 下,或儲存為處於狀態的未父系檢視。 在幕後呼叫 <xref:%40azure%2Fcommunication-calling%23VideoStreamRenderer.createView> 。 案例 1:轉譯 RemoteVideoStreamState
案例 2:轉譯呼叫的 LocalVideoStreamState
|
dispose |
停止轉譯RemoteVideoStreamState或LocalVideoStreamState,並從CallClientState或 <xref:LocalVideoStream>CallClientState或適當的 <xref:CallClientState.deviceManager.unparentedViews> 幕後呼叫 <xref:%40azure%2Fcommunication-calling%23VideoStreamRenderer.dispose> 中相關的RemoteVideoStreamState移除 <xref:VideoStreamRendererView> 。 DisposeView 必須正確清除資源。 案例 1:處置 RemoteVideoStreamState
案例 2:處置 LocalVideoStreamState 以進行呼叫
|
get |
保留我們可以從 CallClient <xref:%40azure%2Fcommunication-calling%23CallClient> Proxy 做為 CallClientState CallClientState的所有狀態。 |
off |
允許取消註冊 'stateChanged' 事件。 |
on |
允許為 'stateChanged' 事件註冊處理常式。 |
繼承的方法
create |
CallAgent 可用來處理呼叫。 若要建立 CallAgent,請傳遞從 SDK 提供的 CommunicationTokenCredential 物件。
|
create |
TeamsCallAgent 可用來處理 Teams 通話。 若要建立 TeamsCallAgent,請傳遞從 SDK 提供的 CommunicationTokenCredential 物件。
|
feature<TFeature>(Call |
使用擴充 API 擷取初始化和備忘的功能物件。 檢查物件 Features.* 中是否有此套件中所有可用的擴充呼叫用戶端功能。 |
get |
DeviceManager 可用來處理媒體裝置,例如相機、麥克風和喇叭。 |
方法詳細資料
createView(undefined | string, undefined | CommunicationIdentifier, LocalVideoStreamState | RemoteVideoStreamState, CreateViewOptions)
轉譯 RemoteVideoStreamState 或 LocalVideoStreamState ,並將產生的 VideoStreamRendererViewState 儲存在相關的 RemoteVideoStreamState 或 LocalVideoStreamState 下,或儲存為處於狀態的未父系檢視。 在幕後呼叫 <xref:%40azure%2Fcommunication-calling%23VideoStreamRenderer.createView> 。
案例 1:轉譯 RemoteVideoStreamState
- CallId 是必要的、需要參與者識別碼,而且需要 RemoteVideoStreamState 類型的資料流程
- 產生的VideoStreamRendererViewState會儲存在指定的 callId 和CallClientState中的 participantId 中
案例 2:轉譯呼叫的 LocalVideoStreamState
CallId 是必要的,參與者識別碼必須未定義,而且需要 LocalVideoStreamState 類型的資料流程。
<xref:%40azure%2Fcommunication-calling%23Call.localVideoStreams>必須已經使用 <xref:%40azure%2Fcommunication-calling%23Call.startVideo> 來啟動 。
產生的VideoStreamRendererViewState會儲存在CallClientState中指定的 callId localVideoStreams中。
案例 2:轉譯 LocalVideoStreamState 不屬於本機預覽 (範例轉譯相機的呼叫)
CallId 必須未定義、participantId 必須未定義,而且需要 LocalVideoStreamState 類型的資料流程。
產生的 VideoStreamRendererViewState 會儲存在 指定的 LocalVideoStreamState 底下 <xref:CallClientState.deviceManager.unparentedViews>
function createView(callId: undefined | string, participantId: undefined | CommunicationIdentifier, stream: LocalVideoStreamState | RemoteVideoStreamState, options?: CreateViewOptions): Promise<undefined | CreateViewResult>
參數
- callId
-
undefined | string
指定資料流程的 CallId。 如果資料流程不是任何呼叫的一部分,則可以取消定義。
- participantId
-
undefined | CommunicationIdentifier
<xref:RemoteParticipant.identifier> 與指定的 RemoteVideoStreamState 相關聯。 如果轉譯 LocalVideoStreamState,可能未定義。
LocalVideoStreamState 或 RemoteVideoStreamState 開始轉譯。
- options
- CreateViewOptions
傳遞至 <xref:%40azure%2Fcommunication-calling%23VideoStreamRenderer> 的選項。
傳回
Promise<undefined | CreateViewResult>
disposeView(undefined | string, undefined | CommunicationIdentifier, LocalVideoStreamState | RemoteVideoStreamState)
停止轉譯RemoteVideoStreamState或LocalVideoStreamState,並從CallClientState或 <xref:LocalVideoStream>CallClientState或適當的 <xref:CallClientState.deviceManager.unparentedViews> 幕後呼叫 <xref:%40azure%2Fcommunication-calling%23VideoStreamRenderer.dispose> 中相關的RemoteVideoStreamState移除 <xref:VideoStreamRendererView> 。
DisposeView 必須正確清除資源。
案例 1:處置 RemoteVideoStreamState
- CallId 是必要的、需要參與者識別碼,而且需要 RemoteVideoStreamState 類型的資料流程
案例 2:處置 LocalVideoStreamState 以進行呼叫
CallId 是必要的,參與者識別碼必須未定義,而且需要 LocalVideoStreamState 類型的資料流程。
案例 2:處置 LocalVideoStreamState 不屬於呼叫的一部分
CallId 必須未定義、participantId 必須未定義,而且需要 LocalVideoStreamState 類型的資料流程。
LocalVideoStreamState 必須是傳遞至 createView 的原始版本。
function disposeView(callId: undefined | string, participantId: undefined | CommunicationIdentifier, stream: LocalVideoStreamState | RemoteVideoStreamState)
參數
- callId
-
undefined | string
指定資料流程的 CallId。 如果資料流程不是任何呼叫的一部分,則可以取消定義。
- participantId
-
undefined | CommunicationIdentifier
<xref:RemoteParticipant.identifier> 與指定的 RemoteVideoStreamState 相關聯。 如果處置 LocalVideoStreamState,可能未定義。
要處置的 LocalVideoStreamState 或 RemoteVideoStreamState。
getState()
保留我們可以從 CallClient <xref:%40azure%2Fcommunication-calling%23CallClient> Proxy 做為 CallClientState CallClientState的所有狀態。
function getState(): CallClientState
傳回
offStateChange((state: CallClientState) => void)
允許取消註冊 'stateChanged' 事件。
function offStateChange(handler: (state: CallClientState) => void)
參數
- handler
-
(state: CallClientState) => void
要取消訂閱的原始回呼。
onStateChange((state: CallClientState) => void)
允許為 'stateChanged' 事件註冊處理常式。
function onStateChange(handler: (state: CallClientState) => void)
參數
- handler
-
(state: CallClientState) => void
接收狀態的回呼。
繼承的方法的詳細資料
createCallAgent(CommunicationTokenCredential, CallAgentOptions)
CallAgent 可用來處理呼叫。 若要建立 CallAgent,請傳遞從 SDK 提供的 CommunicationTokenCredential 物件。
- CallClient 一次只能有一個作用中的 CallAgent 實例。
- 您可以建立新的 CallClient 實例來建立新的 CallAgent。
- 您可以處置 CallClient 目前作用中的 CallAgent,並再次呼叫 CallClient 的 createCallAgent () 方法來建立新的 CallAgent。
function createCallAgent(tokenCredential: CommunicationTokenCredential, options?: CallAgentOptions): Promise<CallAgent>
參數
- tokenCredential
- CommunicationTokenCredential
權杖認證。 使用 AzureCommunicationTokenCredential 從 @azure/communication-common 建立認證。
- options
- CallAgentOptions
CallAgentOptions 用於其他選項,例如顯示名稱。
傳回
Promise<CallAgent>
繼承自 CallClient.createCallAgent
createTeamsCallAgent(CommunicationTokenCredential, TeamsCallAgentOptions)
TeamsCallAgent 可用來處理 Teams 通話。 若要建立 TeamsCallAgent,請傳遞從 SDK 提供的 CommunicationTokenCredential 物件。
- CallClient 一次只能有一個作用中的 TeamsCallAgent 實例。
- 您可以建立新的 CallClient 實例,以建立新的 TeamsCallAgent。
- 您可以處置 CallClient 目前作用中的 TeamsCallAgent,並再次呼叫 CallClient 的 createTeamsCallAgent () 方法來建立新的 TeamsCallAgent。
function createTeamsCallAgent(tokenCredential: CommunicationTokenCredential, options?: TeamsCallAgentOptions): Promise<TeamsCallAgent>
參數
- tokenCredential
- CommunicationTokenCredential
權杖認證。 使用 AzureCommunicationTokenCredential 從 @azure/communication-common 建立認證。
- options
- TeamsCallAgentOptions
CallAgentOptions 用於其他選項,例如顯示名稱。
傳回
Promise<TeamsCallAgent>
繼承自 CallClient.createTeamsCallAgent
feature<TFeature>(CallClientFeatureFactory<TFeature>)
使用擴充 API 擷取初始化和備忘的功能物件。 檢查物件 Features.* 中是否有此套件中所有可用的擴充呼叫用戶端功能。
function feature<TFeature>(factory: CallClientFeatureFactory<TFeature>): TFeature
參數
- factory
-
CallClientFeatureFactory<TFeature>
提供擴充 API 之呼叫用戶端功能建構函式的 Factory。
傳回
TFeature
繼承自 CallClient.feature
getDeviceManager()
DeviceManager 可用來處理媒體裝置,例如相機、麥克風和喇叭。
function getDeviceManager(): Promise<DeviceManager>
傳回
Promise<DeviceManager>
繼承自 CallClient.getDeviceManager