All for Joomla All for Webmasters
Ionic Framework

Vídeo-chamada em Ionic 5 com peerjs

A implementação a ser mostrada neste post é um exemplo simples de chamada de vídeo com Ionic 5/Angular 9. Ao final, você poderá conectar dois dispositivos, desde que o aplicativo esteja sendo executado em ambos. Para iniciar/acordar o app no caso de o mesmo não estar sendo executado no momento da chamada, uma possibilidade é implementar uma solução como uma notificação push, que não será demonstrada aqui. Sem mais delongas, vamos direto ao assunto:

Iniciando e configurando o projeto

Com a pasta do projeto criada, adicione o peerjs  ao repositório:

Adicione a diretiva  esModuleInterop ao arquivo tsconfig.json para podermos importar módulos CommonJS:

 Criando o service

 Edite a classe/service WebrtcService, para iniciar a conexão peer-to-peer e fazer a chamada:

O método init  criará uma conexão com id recbido e, em seguida, registrará o método wait  para ouvir qualquer chamada. Se alguma chamada for recebida dentro do método de espera, ele responderá automaticamente. Você pode alterar a implementação, já que a chamada  new Peer() , sem parâmetros no construtor, se conectará ao servidor padrão. Você pode usar outro servidor ou fazer sua própria implementação. Neste méotodo, também é iniciada a transmissão de vídeo/áudio na resposta à chamada e a envia para o objeto html da view (temos que criar um elemento html para exibir o vídeo na página home.html). O método call  pedirá ao servidor para conectá-lo ao seu contato de chamada.

Criando a view

A tag video  exibe tanto seu conteúdo de mídia quanto do seu contato de chamada. Você deve fazer o login com o apelido para ser seu identificador nas chamadas.

Editando o home.ts

O método de login atribuirá o frame de vídeo ao elemento html e os passará para o webrtcservice , para que o serviço possa enviar o stream para eles. O método call  passará o partnerId  ao serviço webrtc  para conexão com seu contato.

Editando o home.scss

Depois que você e seu contato se conectarem, você pode trocar o vídeo em evidÊncia com o método swapVideo  e [ngClass] . O serviço webrtc  solicitará permissão de câmera/microfone. Por isso, quando executamos o aplicativo fora do localhost, o navegador bloqueia a permissão. Portanto, temos que executá-lo com o parâmetro –ssl . Primeiro conecte seu computador juntamente com seu segundo dispositivo (destkop/laptop/celular) à mesma rede em seguida, execute o servidor Ionic com seu endereço IP, como abaixo:

No dispositivos que vão se conectar, acesse o endereço com o https pré-fixado:

Se liga aí, porque é hora da revisão

Conforme explicado, o exemplo acima utiliza um servidor peer padrão para facilitar a demonstração e implementação. Em um caso de implementação para uso profissional, o ideal é utilizar/implementar seu próprio servidor. Ao acessar o endereço com https, pela ausência/invalidade de um certificado do endereço, é possível que o navegador exiba algum aviso de risco, deve ser consentido para avançar à aplicação. Quaisquer dúvidas ou sugestões, utilize a área de comentários ou entre em contato!

Você Também Pode Gostar

1 Comentário

  • Responder
    Maicon santos
    21 de setembro de 2021 at 15:49

    vc tem este projeto no git ou em zip para eu testar?

  • Deixe uma Resposta