Поделиться через


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)

Отрисовывает RemoteVideoStreamState или LocalVideoStreamState и сохраняет результирующий Объект VideoStreamRendererViewState в соответствующем представлении RemoteVideoStreamState или LocalVideoStreamState или в качестве нероданого представления в состоянии . Под капотом вызывает .<xref:%40azure%2Fcommunication-calling%23VideoStreamRenderer.createView>

Сценарий 1. Отрисовка RemoteVideoStreamState

  • CallId является обязательным, participantId — обязательным, и требуется поток типа RemoteVideoStreamState.
  • Результат VideoStreamRendererViewState хранится в заданном callId и participantId в CallClientState

Сценарий 2. Отрисовка LocalVideoStreamState для вызова

  • CallId является обязательным, participantId должен быть неопределенным, и требуется поток типа LocalVideoStreamState.

  • Необходимо <xref:%40azure%2Fcommunication-calling%23Call.localVideoStreams> уже запустить с помощью <xref:%40azure%2Fcommunication-calling%23Call.startVideo>.

  • Результат VideoStreamRendererViewState хранится в заданном callId localVideoStreams в CallClientState.

  • Сценарий 2. Отрисовка LocalVideoStreamState не является частью вызова (пример отрисовки камеры для локального предварительного просмотра)

  • CallId должен быть неопределенным, participantId должен быть неопределенным, и требуется поток типа LocalVideoStreamState.

  • Результирующий VideoStreamRendererViewState хранится в заданном LocalVideoStreamState в <xref:CallClientState.deviceManager.unparentedViews>

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

Останавливает отрисовку RemoteVideoStreamState или LocalVideoStreamState и удаляет из соответствующего объекта RemoteVideoStreamState в CallClientState или <xref:LocalVideoStream>CallClientState или соответствующих <xref:CallClientState.deviceManager.unparentedViews> вызовов <xref:VideoStreamRendererView><xref:%40azure%2Fcommunication-calling%23VideoStreamRenderer.dispose>Под капотом .

Важно удалитьview для правильной очистки ресурсов.

Сценарий 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, передайте объект CommunicationTokenCredential, предоставленный из пакета SDK.

  • CallClient может иметь только один активный экземпляр CallAgent за раз.
  • Вы можете создать новый экземпляр CallClient, чтобы создать новый Объект CallAgent.
  • Вы можете удалить текущий активный CallAgent CallAgent в CallClient и снова вызвать метод createCallAgent() CallClient, чтобы создать новый CallAgent.
createTeamsCallAgent(CommunicationTokenCredential, TeamsCallAgentOptions)

TeamsCallAgent используется для обработки вызовов Teams. Чтобы создать TeamsCallAgent, передайте объект CommunicationTokenCredential, предоставленный из пакета SDK.

  • CallClient может иметь только один активный экземпляр TeamsCallAgent одновременно.
  • Вы можете создать новый экземпляр CallClient, чтобы создать новый Экземпляр TeamsCallAgent.
  • Вы можете удалить текущий активный TeamsCallAgent callClient и снова вызвать метод createTeamsCallAgent() CallClient, чтобы создать новый TeamsCallAgent.
feature<TFeature>(CallClientFeatureFactory<TFeature>)

Извлекает инициализированный и замеченный объект Feature с расширенным API. Проверьте объект Features.* для всех доступных расширенных функций клиента вызовов в этом пакете.

getDeviceManager()

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 хранится в заданном callId и participantId в CallClientState

Сценарий 2. Отрисовка LocalVideoStreamState для вызова

  • CallId является обязательным, participantId должен быть неопределенным, и требуется поток типа LocalVideoStreamState.

  • Необходимо <xref:%40azure%2Fcommunication-calling%23Call.localVideoStreams> уже запустить с помощью <xref:%40azure%2Fcommunication-calling%23Call.startVideo>.

  • Результат VideoStreamRendererViewState хранится в заданном callId localVideoStreams в CallClientState.

  • Сценарий 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)

Останавливает отрисовку RemoteVideoStreamState или LocalVideoStreamState и удаляет из соответствующего объекта RemoteVideoStreamState в CallClientState или <xref:LocalVideoStream>CallClientState или соответствующих <xref:CallClientState.deviceManager.unparentedViews> вызовов <xref:VideoStreamRendererView><xref:%40azure%2Fcommunication-calling%23VideoStreamRenderer.dispose>Под капотом .

Важно удалитьview для правильной очистки ресурсов.

Сценарий 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, передайте объект CommunicationTokenCredential, предоставленный из пакета SDK.

  • CallClient может иметь только один активный экземпляр CallAgent за раз.
  • Вы можете создать новый экземпляр CallClient, чтобы создать новый Объект CallAgent.
  • Вы можете удалить текущий активный CallAgent CallAgent в CallClient и снова вызвать метод createCallAgent() CallClient, чтобы создать новый CallAgent.
function createCallAgent(tokenCredential: CommunicationTokenCredential, options?: CallAgentOptions): Promise<CallAgent>

Параметры

tokenCredential
CommunicationTokenCredential

Учетные данные маркера. Используйте AzureCommunicationTokenCredential from @azure/communication-common для создания учетных данных.

options
CallAgentOptions

CallAgentOptions для дополнительных параметров, таких как отображаемое имя.

Возвращаемое значение

Promise<CallAgent>

Наследуется от CallClient.createCallAgent

createTeamsCallAgent(CommunicationTokenCredential, TeamsCallAgentOptions)

TeamsCallAgent используется для обработки вызовов Teams. Чтобы создать TeamsCallAgent, передайте объект CommunicationTokenCredential, предоставленный из пакета SDK.

  • CallClient может иметь только один активный экземпляр TeamsCallAgent одновременно.
  • Вы можете создать новый экземпляр CallClient, чтобы создать новый Экземпляр TeamsCallAgent.
  • Вы можете удалить текущий активный TeamsCallAgent callClient и снова вызвать метод createTeamsCallAgent() CallClient, чтобы создать новый TeamsCallAgent.
function createTeamsCallAgent(tokenCredential: CommunicationTokenCredential, options?: TeamsCallAgentOptions): Promise<TeamsCallAgent>

Параметры

tokenCredential
CommunicationTokenCredential

Учетные данные маркера. Используйте AzureCommunicationTokenCredential from @azure/communication-common для создания учетных данных.

options
TeamsCallAgentOptions

CallAgentOptions для дополнительных параметров, таких как отображаемое имя.

Возвращаемое значение

Promise<TeamsCallAgent>

Наследуется от CallClient.createTeamsCallAgent

feature<TFeature>(CallClientFeatureFactory<TFeature>)

Извлекает инициализированный и замеченный объект Feature с расширенным 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