For the complete documentation index, see llms.txt. This page is also available as Markdown.

Videochamada - Videocall

Este componente precisa de uma versão mínima do iOS13

Introdução

A Videochamada é gerenciada com o Componente VideoCall.

Este componente é responsável por gerenciar a comunicação entre um usuário e um agente (videoassistência). Seus principais processos são:

  • Gestão interna de câmeras, microfone e permissões.

  • Conexão com os serviços.

Na seção de Lançamento simplificado são detalhados os passos necessários para a integração básica do SDK. Nesta seção é adicionada a informação para o lançamento deste componente.

Dependências

Para evitar conflitos e problemas de compatibilidade, caso queira instalar o componente em um projeto que contenha uma Versão antiga das bibliotecas da Facephi (Widgets), eles deverão ser removidos completamente antes da instalação dos componentes da SDKMobile.

CocoaPods

  • As dependências obrigatórias que devem ter sido instaladas previamente (adicionando-as no arquivo Podfile do projeto) são:

pod 'FPHISDKMainComponent', '~> $VERSION'
  • Para instalar o componente de Videochamada, deve-se incluir a seguinte entrada no Podfile da aplicação:

pod 'FPHISDKVideoCallComponent', '~> $VERSION'

SPM

  • As dependências obrigatórias que deverão ter sido instaladas previamente são:

  • Para instalar o componente de Videochamada, deve-se incluir nos módulos do projeto:

Controladores disponíveis

Controlador

Descrição

VideoCallController

Controlador principal de Videochamada

Lançamento simplificado

Uma vez iniciado o SDK e criada uma nova operação, será possível lançar o componente. Será possível fazer uso de qualquer um de seus controladores para executar sua funcionalidade.

Lançamento:

extensionIdentifier deve coincidir com o Bundle Identifier da Broadcast Upload Extension de compartilhamento de tela que você adicionar no seu app (veja Extensão de compartilhamento de tela).

Extensão de compartilhamento de tela

Desde a Versão 2.8.1, a Broadcast Upload Extension para compartilhar a tela durante a Videochamada é configurada na app integradora e é associada ao componente Chamada de vídeo por meio de extensionIdentifier.

Etapas no app integrador

  1. No Xcode, adicione um target Broadcast Upload Extension ao projeto do app (por ex. File → New → Target → Broadcast Upload Extension).

  2. Defina um Bundle Identifier único para a extensão (por ex. com.organization.app.videocallExtension).

  3. Use esse identificador como extensionIdentifier ao criar VideoCallController (veja o exemplo de lançamento anterior).

  4. No target e na extensão, deve-se adicionar uma capability do tipo App Group. Ao fazer isso, deve-se inserir o mesmo nome tanto no target quanto na extensão.

  5. No Info.plist da extensão, deve-se modificar NSExtensionPrincipalClass para que seu valor seja videocallComponent.VideoExtensionHandler.

  6. Se for instalado via CocoaPods, deve-se adicionar o target da extensão ao Podfile e sua dependência com VideoCall. Se for instalado com SPM, deve-se adicionar a dependência de VideoCall ao target da extensão.

  7. Ative activateScreenSharing em VideoCallConfigurationData quando quiser oferecer compartilhamento de tela na chamada.

Existe um exemplo de programação com essa funcionalidade incorporada e configurada.

Nas versões 2.8.0 e anteriores, a extensão de broadcast podia ser associada ao Fluxo de Gravação de vídeo. A partir de 2.8.1 essa responsabilidade passa para Chamada de vídeo.

Configuração básica

A configuração básica necessária não precisará de nenhum parâmetro.

Recebimento do resultado

Os controllers devolverão as informações necessárias no formato SdkResult.

Recebimento de erros

Na parte de erro, teremos a classe comum ErrorType.

  • VCL_CANCEL_BY_USER: O usuário cancelou o processo

  • VCL_CANCEL_LAUNCH: Foi feito um cancelamento geral do SDK

  • VCL_COMPONENT_LICENSE_ERROR: A Licença do componente não está correta

  • VCL_EMPTY_LICENSE: A String de Licença está vazia

  • VCL_FACE_DETECTION_TIMEOUT: Nenhum rosto foi detectado

  • VCL_INITIALIZATION_ERROR: Erro de Inicialização

  • VCL_MANAGER_NOT_INITIALIZED: Os managers são nulos

  • VCL_NETWORK_CONNECTION: Erro na conexão com a internet

  • VCL_NO_DATA_ERROR: Os dados de entrada são nulos

  • VCL_OPERATION_NOT_CREATED: Não há nenhuma operação em andamento

  • VCL_PERMISSION_DENIED: O usuário recusou as permissões

  • VCL_SOCKET_ERROR: Erro na conexão dos serviços

  • VCL_TIMEOUT: Timeout no processo

  • VCL_VIDEO_ERROR: Erro no processamento do vídeo

  • VCL_UNKNOWN_ERROR: Erro desconhecido

  • VCL_VIDEO_RECORDING_ACTIVE: Não é possível iniciar porque o processo de gravação de vídeo está ativo

Recebimento de execução correta - data

Na execução correta, apenas se informa que tudo ocorreu bem com o SdkResult.Success.

Quando o resultado for Success e o flag estiver ativo sharingScreen será possível ativar o compartilhamento de tela.

Informações avançadas

Esta seção amplia as informações do componente.

Configuração avançada do componente

Os campos incluídos na configuração, normalmente não precisam ser informados pois são preenchidos internamente por meio da licença usada.

activateScreenSharing

Ativar a opção de compartilhamento de tela na chamada.

url

Caminho para o socket de vídeo

apiKey

ApiKey necessária para a conexão com o socket de vídeo

tenantId

Identificador do tenant que faz referência ao cliente atual, necessário para a conexão com o serviço de vídeo.

vibrationEnabled

Se receber o valor true, a vibração é ativada em erros e, se a resposta do Widget for OK

Personalização do componente

Além das alterações que podem ser feitas no nível do SDK (as quais são explicadas no documento de Personalização do SDK), este componente específico permite a modificação de sua interface.

Textos

Os textos podem ser personalizados sobrescrevendo o valor das seguintes chaves em um Localizable.strings. As chaves que contêm o sufixo _alt são os literais utilizados nas etiquetas de acessibilidade necessárias para a funcionalidade de VoiceOver.

Name

Valor

video_call_component_exit_alert_question

Tem certeza de que deseja encerrar a chamada?

video_call_component_exit_alert_finish

Encerrar

video_call_component_exit_alert_accept

Aceitar

video_call_component_exit_alert_cancel

Cancelar

video_call_component_skip

PULAR

video_call_component_restart

TENTAR NOVAMENTE

video_call_component_agent

Atendente

video_call_component_text_waiting_agent_title

Conectando com um atendente...

video_call_component_close_button_alt

Fechar

video_call_component_back_button_alt

Voltar

video_call_component_timeout_title

Tempo esgotado

video_call_component_timeout_desc

Não foi possível conectar-se com um atendente.

Dessa forma, se desejar modificar, por exemplo, o texto “Encerrar” da chave video_call_component_exit_alert_finish para o idioma es, será necessário ir ao arquivo Localizable.strings da pasta es.lproj caso exista (se não, será necessário criá-lo) e, então, adicionar:

"video_call_component_exit_alert_finish"="Encerrar";

Se uma mensagem não for especificada no arquivo do idioma, ela será preenchida com a mensagem padrão.

Cores

As cores são inicializadas de forma semelhante na variável colors com um dicionário, tendo como valor um UIColor que você desejar.

Animações

As animações a usar são inicializadas de forma semelhante na variável animations com um dicionário, tendo como valor uma string com o nome da animação que esteja em xcassets que se deseje usar.

Atualizado