你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

StatefulCallClient interface

定义允许有状态地使用 CallClient <xref:%40azure%2Fcommunication-calling%23CallClient> 的方法。 接口提供对代理状态的访问,还允许注册状态更改事件的处理程序。 有关状态定义,请参阅 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

方案 2:呈现调用的 LocalVideoStreamState

  • CallId 是必需的,participantId 必须未定义,并且需要 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 或 CallClientState 或<xref:LocalVideoStream>适当的<xref:CallClientState.deviceManager.unparentedViews>后台调用<xref:%40azure%2Fcommunication-calling%23VideoStreamRenderer.dispose>的相关 RemoteVideoStreamState 中删除 <xref:VideoStreamRendererView> 。

释放视图以正确清理资源非常重要。

方案 1:释放 RemoteVideoStreamState

  • 需要 CallId,需要 participantId,需要 RemoteVideoStreamState 类型的流

方案 2:释放调用的 LocalVideoStreamState

  • CallId 是必需的,participantId 必须未定义,并且需要 LocalVideoStreamState 类型的流。

  • 方案 2:释放不属于调用的 LocalVideoStreamState

  • CallId 必须未定义,participantId 必须未定义,并且需要 LocalVideoStreamState 类型的流。

  • LocalVideoStreamState 必须是传递给 createView 的原始对象。

getState()

保留可从 CallClient <xref:%40azure%2Fcommunication-calling%23CallClient> 代理的所有状态作为 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

方案 2:呈现调用的 LocalVideoStreamState

  • CallId 是必需的,participantId 必须未定义,并且需要 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 或 CallClientState 或<xref:LocalVideoStream>适当的<xref:CallClientState.deviceManager.unparentedViews>后台调用<xref:%40azure%2Fcommunication-calling%23VideoStreamRenderer.dispose>的相关 RemoteVideoStreamState 中删除 <xref:VideoStreamRendererView> 。

释放视图以正确清理资源非常重要。

方案 1:释放 RemoteVideoStreamState

  • 需要 CallId,需要 participantId,需要 RemoteVideoStreamState 类型的流

方案 2:释放调用的 LocalVideoStreamState

  • CallId 是必需的,participantId 必须未定义,并且需要 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> 代理的所有状态作为 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 的调用客户端功能构造函数的工厂。

返回

TFeature

继承自 CallClient.feature

getDeviceManager()

DeviceManager 用于处理相机、麦克风和扬声器等媒体设备。

function getDeviceManager(): Promise<DeviceManager>

返回

Promise<DeviceManager>

继承自 CallClient.getDeviceManager