共用方式為


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

方法

createView(undefined | string, undefined | CommunicationIdentifier, LocalVideoStreamState | RemoteVideoStreamState, CreateViewOptions)

轉譯 RemoteVideoStreamStateLocalVideoStreamState ,並將產生的 VideoStreamRendererViewState 儲存在相關的 RemoteVideoStreamStateLocalVideoStreamState 下,或儲存為處於狀態的未父系檢視。 在幕後呼叫 <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>

disposeView(undefined | string, undefined | CommunicationIdentifier, LocalVideoStreamState | RemoteVideoStreamState)

停止轉譯RemoteVideoStreamStateLocalVideoStreamState,並從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 的原始版本。

getState()

保留我們可以從 CallClient <xref:%40azure%2Fcommunication-calling%23CallClient> Proxy 做為 CallClientState CallClientState的所有狀態。

offStateChange((state: CallClientState) => void)

允許取消註冊 'stateChanged' 事件。

onStateChange((state: CallClientState) => void)

允許為 'stateChanged' 事件註冊處理常式。

繼承的方法

createCallAgent(CommunicationTokenCredential, CallAgentOptions)

CallAgent 可用來處理呼叫。 若要建立 CallAgent,請傳遞從 SDK 提供的 CommunicationTokenCredential 物件。

  • CallClient 一次只能有一個作用中的 CallAgent 實例。
  • 您可以建立新的 CallClient 實例來建立新的 CallAgent。
  • 您可以處置 CallClient 目前作用中的 CallAgent,並再次呼叫 CallClient 的 createCallAgent () 方法來建立新的 CallAgent。
createTeamsCallAgent(CommunicationTokenCredential, TeamsCallAgentOptions)

TeamsCallAgent 可用來處理 Teams 通話。 若要建立 TeamsCallAgent,請傳遞從 SDK 提供的 CommunicationTokenCredential 物件。

  • CallClient 一次只能有一個作用中的 TeamsCallAgent 實例。
  • 您可以建立新的 CallClient 實例,以建立新的 TeamsCallAgent。
  • 您可以處置 CallClient 目前作用中的 TeamsCallAgent,並再次呼叫 CallClient 的 createTeamsCallAgent () 方法來建立新的 TeamsCallAgent。
feature<TFeature>(CallClientFeatureFactory<TFeature>)

使用擴充 API 擷取初始化和備忘的功能物件。 檢查物件 Features.* 中是否有此套件中所有可用的擴充呼叫用戶端功能。

getDeviceManager()

DeviceManager 可用來處理媒體裝置,例如相機、麥克風和喇叭。

方法詳細資料

createView(undefined | string, undefined | CommunicationIdentifier, LocalVideoStreamState | RemoteVideoStreamState, CreateViewOptions)

轉譯 RemoteVideoStreamStateLocalVideoStreamState ,並將產生的 VideoStreamRendererViewState 儲存在相關的 RemoteVideoStreamStateLocalVideoStreamState 下,或儲存為處於狀態的未父系檢視。 在幕後呼叫 <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,可能未定義。

stream

LocalVideoStreamState | RemoteVideoStreamState

LocalVideoStreamState 或 RemoteVideoStreamState 開始轉譯。

options
CreateViewOptions

傳遞至 <xref:%40azure%2Fcommunication-calling%23VideoStreamRenderer> 的選項。

傳回

Promise<undefined | CreateViewResult>

disposeView(undefined | string, undefined | CommunicationIdentifier, LocalVideoStreamState | RemoteVideoStreamState)

停止轉譯RemoteVideoStreamStateLocalVideoStreamState,並從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,可能未定義。

stream

LocalVideoStreamState | RemoteVideoStreamState

要處置的 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