Videochamada - VideoCall
Introdução
A Captura Facial é realizada 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ência
A dependência específica do componente é:
implementation "com.facephi.androidsdk:videocall_component:$version"Controladores disponíveis
Controlador
Descrição
VideoCallController
Controlador principal de Videochamada
StopVideoCallController
Parar o compartilhamento de tela e a chamada em andamento
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:
Configuração básica
Para iniciar o componente atual, deverá ser criado um objeto VideoCallConfigurationData que será a configuração do controlador do componente.
A configuração básica necessária não precisará de nenhum parâmetro:
Recebimento do resultado
O lançamento retornará as informações no formato SdkResult. Podendo diferenciar-se entre um lançamento correto e um incorreto:
Recebimento de erros
Os erros serão retornados como um objeto 'VideoCallError'.
Lista de erros:
VCL_ACTIVITY_RESULT_MSG_ERROR: O resultado da atividade está incorreto
VCL_APPLICATION_CONTEXT_ERROR: O contexto de aplicação necessário é nulo
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_FETCH_DATA_ERROR: Erro na coleta do resultado
VCL_FLOW_ERROR: Erro no processo de flow
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_ERROR: O usuário rejeitou as permissões
VCL_SCREEN_SHARING_PERMISSION_ERROR: O usuário rejeitou a permissão para compartilhar tela
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_CALL_ACTIVE: Não é possível iniciar porque já há uma videochamada ativa
VCL_VIDEO_RECORDING_ACTIVE: Não é possível iniciar porque o processo de gravação de vídeo está ativo
Recebimento do resultado correto - data
Na parte de SdkResult.Success - data, teremos a classe VideoCallResult que terá uma única propriedade.
sharingScreen: Indica se a chamada continua ativa com compartilhamento de tela iniciado.
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
Para iniciar o componente atual, deverá ser criado um objeto VideoCallConfigurationData que será a configuração do controlador do componente.
A seguir, estão detalhados todos os campos que fazem parte desta classe.
Os campos incluídos na configuração, normalmente não precisam ser informados pois são preenchidos internamente por meio da licença usada.
Esses campos geralmente são informados somente quando o servidor es OnPremise.
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.activateScreenSharing: Ativar a opção de compartilhar tela na chamada.Timeout: Tempo de espera para que um agente atenda a chamada (ms).
Compartilhar tela
Quando o usuário ativar a funcionalidade de compartilhamento de tela, o resultado será recebido no controlador com "sharingScreen = true". Isso indica que a chamada continua em andamento.
Para encerrar a chamada, será usado o controlador StopVideoCallController.
Os possíveis estados são:
O estado que indica a finalização completa da chamada é FINISH.
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 adicionando um arquivo XML de recursos no aplicativo cliente e substituindo os valores padrão.
Cores
Animações
Se desejar modificar as animações (lottie) do SDK, é preciso incluir as animações com o mesmo nome na pasta res/raw/ da aplicação.
Views externas
É possível modificar completamente as telas do componente mantendo sua funcionalidade e navegação. Para isso, devem ser implementadas as interfaces a seguir:
Tela de diagnóstico de erro:
Uma vez criadas as classes que implementam as interfaces, no lançamento do componente será possível adicionar o parâmetro "customViews" para que sejam usadas no SDK.
Atualizado