你当前正在访问 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
方法
create |
呈现 RemoteVideoStreamState 或 LocalVideoStreamState ,并将生成的 VideoStreamRendererViewState 存储在相关的 RemoteVideoStreamState 或 LocalVideoStreamState 下,或存储为状态中的无父视图。 在引擎盖下调用 <xref:%40azure%2Fcommunication-calling%23VideoStreamRenderer.createView>。 方案 1:呈现 RemoteVideoStreamState
方案 2:呈现调用的 LocalVideoStreamState
|
dispose |
停止呈现 RemoteVideoStreamState 或 LocalVideoStreamState,并从 CallClientState 或 CallClientState 或<xref:LocalVideoStream>适当的<xref:CallClientState.deviceManager.unparentedViews>后台调用<xref:%40azure%2Fcommunication-calling%23VideoStreamRenderer.dispose>的相关 RemoteVideoStreamState 中删除 <xref:VideoStreamRendererView> 。 释放视图以正确清理资源非常重要。 方案 1:释放 RemoteVideoStreamState
方案 2:释放调用的 LocalVideoStreamState
|
get |
保留可从 CallClient <xref:%40azure%2Fcommunication-calling%23CallClient> 代理的所有状态作为 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,需要 participantId,需要 RemoteVideoStreamState 类型的流
- 生成的 VideoStreamRendererViewState 存储在 CallClientState 中的给定 callId 和 participantId 中
方案 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,则可能未定义。
要开始呈现的 LocalVideoStreamState 或 RemoteVideoStreamState。
- options
- CreateViewOptions
传递给 <xref:%40azure%2Fcommunication-calling%23VideoStreamRenderer>的选项。
返回
Promise<undefined | CreateViewResult>
disposeView(undefined | string, undefined | CommunicationIdentifier, LocalVideoStreamState | RemoteVideoStreamState)
停止呈现 RemoteVideoStreamState 或 LocalVideoStreamState,并从 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,则可能未定义。
要释放的 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