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
No Xcode, adicione um target Broadcast Upload Extension ao projeto do app (por ex. File → New → Target → Broadcast Upload Extension).
Defina um Bundle Identifier único para a extensão (por ex.
com.organization.app.videocallExtension).Use esse identificador como
extensionIdentifierao criarVideoCallController(veja o exemplo de lançamento anterior).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.No
Info.plistda extensão, deve-se modificarNSExtensionPrincipalClasspara que seu valor sejavideocallComponent.VideoExtensionHandler.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.
Ative
activateScreenSharingemVideoCallConfigurationDataquando 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