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


StatefulCallClient interface

Определяет методы, разрешающие использование callClient <xref:%40azure%2Fcommunication-calling%23CallClient> с отслеживанием состояния. Интерфейс предоставляет доступ к прокси-состоянию, а также позволяет зарегистрировать обработчик для событий изменения состояния. Определение состояния см. в CallClientState.

События изменения состояния управляются следующими событиями:

  • Возвращенные данные из API <xref:%40azure%2Fcommunication-calling%23DeviceManager>.
  • Возвращенные данные из API <xref:%40azure%2Fcommunication-calling%23CallAgent>.
  • Прослушиватели автоматически подключаются к различным объектам связи Azure:
    • CallAgent "incomingCall"
    • CallAgent "callUpdated"
    • DeviceManager "videoDevicesUpdated"
    • DeviceManager 'audioDevicesОбновлено
    • DeviceManager 'selectedMicrophoneChanged'
    • DeviceManager 'selectedSpeakerChanged'
    • Вызов stateChanged
    • Вызов "idChanged"
    • Вызов isMutedChanged
    • Вызов isScreenSharingOnChanged
    • Вызов remoteParticipantsUpdated
    • Вызов localVideoStreamsUpdated
    • ВходящийCall "callEnded"
    • RemoteParticipant "stateChanged"
    • RemoteParticipant isMutedChanged
    • RemoteParticipant "displayNameChanged"
    • RemoteParticipant 'isSpeakingChanged'
    • RemoteParticipant "videoStreamsUpdated"
    • RemoteVideoStream 'isAvailableChanged'
    • ТранскрибированиеCallFeature 'isTranscriptionActiveChanged'
    • RecordingCallFeature 'isRecordingActiveChanged'
    • LocalRecordingCallFeature 'isLocalRecordingActiveChanged'
    • RaiseHandCallFeature 'raisedHandEvent'
    • RaiseHandCallFeature 'loweredHandEvent'
    • PPTLiveCallFeature 'isAciveChanged'
    • ReactionCallFeature 'реакция'
Extends

Методы

createCallAgent([tokenCredential, options])

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

  • CallClient может иметь только один активный экземпляр CallAgent в каждый момент времени.
  • Вы можете создать новый экземпляр CallClient, чтобы создать новый CallAgent.
  • Вы можете избавиться от текущего активного CallAgent CallClient и снова вызвать метод createCallAgent() CallClient, чтобы создать новый CallAgent.
createTeamsCallAgent([tokenCredential, options])

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

  • CallClient может иметь только один активный экземпляр TeamsCallAgent в каждый момент времени.
  • Вы можете создать новый экземпляр CallClient, чтобы создать новый TeamsCallAgent.
  • Вы можете избавиться от текущего активного TeamsCallAgent CallClient и снова вызвать метод createTeamsCallAgent() CallClient, чтобы создать новый TeamsCallAgent.
createView(undefined | string, undefined | CommunicationIdentifier, CallFeatureStreamState | RemoteVideoStreamState | LocalVideoStreamState, 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 должен быть undefined, participantId должен быть undefined, а также требуется поток типа LocalVideoStreamState.

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

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

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

Важно утилизировать View, чтобы правильно очищать ресурсы.

Сценарий 1: Удаление RemoteVideoStreamState

  • Требуется CallId, требуется participantId и требуется поток типа RemoteVideoStreamState

Сценарий 2: Удаление LocalVideoStreamState для вызова

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

  • Сценарий 2: Удаление LocalVideoStreamState, не являющегося частью вызова

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

  • LocalVideoStreamState должен быть исходным, переданным в createView.

getState()

Содержит все состояния, которые мы могли бы передать из CallClient, <xref:%40azure%2Fcommunication-calling%23CallClient> как CallClientState CallClientState.

offStateChange((state: CallClientState) => void)

Разрешает отмену регистрации для событий stateChanged.

onStateChange((state: CallClientState) => void)

Позволяет обработчику регистрироваться для событий stateChanged.

Наследуемые методы

dispose()

Удаляет этот CallClient, который также избавляется от связанного диспетчера устройств и связанного агента вызова.

feature<TFeature>(CallClientFeatureFactory<TFeature>)

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

getDeviceManager()

DeviceManager используется для работы с мультимедийными устройствами, такими как камеры, микрофоны и динамики.

Сведения о методе

createCallAgent([tokenCredential, options])

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

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

Параметры

args

[tokenCredential, options]

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

createTeamsCallAgent([tokenCredential, options])

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

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

Параметры

args

[tokenCredential, options]

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

createView(undefined | string, undefined | CommunicationIdentifier, CallFeatureStreamState | RemoteVideoStreamState | LocalVideoStreamState, 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 должен быть undefined, participantId должен быть undefined, а также требуется поток типа LocalVideoStreamState.

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

function createView(callId: undefined | string, participantId: undefined | CommunicationIdentifier, stream: CallFeatureStreamState | RemoteVideoStreamState | LocalVideoStreamState, options?: CreateViewOptions): Promise<undefined | CreateViewResult>

Параметры

callId

undefined | string

CallId для данного потока. Может быть неопределенным, если поток не является частью какого-либо вызова.

participantId

undefined | CommunicationIdentifier

<xref:RemoteParticipant.identifier> связанный с заданным состоянием RemoteVideoStreamState. Может быть не определен при рендеринге LocalVideoStreamState.

stream

CallFeatureStreamState | RemoteVideoStreamState | LocalVideoStreamState

LocalVideoStreamState или RemoteVideoStreamState для начала отрисовки.

options
CreateViewOptions

Параметры, передаваемые в <xref:%40azure%2Fcommunication-calling%23VideoStreamRenderer>.

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

Promise<undefined | CreateViewResult>

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

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

Важно утилизировать View, чтобы правильно очищать ресурсы.

Сценарий 1: Удаление RemoteVideoStreamState

  • Требуется CallId, требуется participantId и требуется поток типа RemoteVideoStreamState

Сценарий 2: Удаление LocalVideoStreamState для вызова

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

  • Сценарий 2: Удаление LocalVideoStreamState, не являющегося частью вызова

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

  • LocalVideoStreamState должен быть исходным, переданным в createView.

function disposeView(callId: undefined | string, participantId: undefined | CommunicationIdentifier, stream: CallFeatureStreamState | RemoteVideoStreamState | LocalVideoStreamState)

Параметры

callId

undefined | string

CallId для данного потока. Может быть неопределенным, если поток не является частью какого-либо вызова.

participantId

undefined | CommunicationIdentifier

<xref:RemoteParticipant.identifier> связанный с заданным состоянием RemoteVideoStreamState. Может быть не определен при удалении LocalVideoStreamState.

stream

CallFeatureStreamState | 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

Обратный вызов для получения состояния.

Сведения о наследуемом методе

dispose()

Удаляет этот CallClient, который также избавляется от связанного диспетчера устройств и связанного агента вызова.

function dispose(): Promise<void>

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

Promise<void>

Унаследовано от CallClient.dispose

feature<TFeature>(CallClientFeatureFactory<TFeature>)

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

function feature<TFeature>(factory: CallClientFeatureFactory<TFeature>): TFeature

Параметры

factory

CallClientFeatureFactory<TFeature>

Фабрика для конструктора функций клиента вызова, предоставляющего расширенный API.

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

TFeature

Унаследовано от CallClient.feature

getDeviceManager()

DeviceManager используется для работы с мультимедийными устройствами, такими как камеры, микрофоны и динамики.

function getDeviceManager(): Promise<DeviceManager>

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

Promise<DeviceManager>

Унаследовано от CallClient.getDeviceManager