Compartilhamento remoto de tela Java através de WebRTC

Este projeto demonstra como compartilhar uma tela entre duas aplicações Java utilizando WebRTC e JxBrowser.

Compartilhamento de Tela

Problema 

O compartilhamento de tela é uma ferramenta essencial utilizada em muitas aplicações e serviços. Embora existam muitos serviços no mercado, é muitas vezes necessário acrescentar esta funcionalidade a uma aplicação existente, integrando-a estreitamente com outras partes da aplicação e dando resposta a potenciais preocupações com a privacidade.

Criar o compartilhamento de tela do zero numa aplicação desktop pode exigir muitos recursos. É necessário lidar com protocolos de rede complexos, otimizar a interface do usuário para transmitir vídeo e, além disso, manter este código durante anos.

Solução 

O JxBrowser suporta a transferência de dados através de WebRTC. Trata-se de um padrão aberto, com muitas aplicações possíveis, uma das quais é a transmissão de vídeo. Com o WebRTC, vídeo, áudio e outros tipos de dados são transferidos ponto a ponto entre instâncias de aplicação.

A plataforma Java não tem suporte WebRTC incorporado, mas como o JxBrowser funciona em cima do motor Chromium, a sua API fornece todas as funcionalidades WebRTC disponíveis no Chrome. Não só é possível criar um canal de compartilhamento de tela entre duas aplicações utilizando o JxBrowser, como também é possível utilizar qualquer software compatível com WebRTC para enviar ou receber fluxos de dados.

Este projeto é uma aplicação desktop simples criada com o JxBrowser e o WebRTC, com o código que qualquer pessoa pode reutilizar nos seus próprios projetos. Veja uma série de destaques:

  1. Suporte multiplataforma para Windows, macOS e Linux, com várias arquiteturas, também.
  2. A implementação do WebRTC provém do Chromium, que é constantemente atualizado com melhorias de desempenho e correções de segurança.
  3. Seguir um padrão aberto facilita a integração com outras plataformas, como celular.
  4. Todos os fluxos de multimédia são encriptados de ponta a ponta, mantendo as sessões de compartilhamento de tela seguras e privadas.

Licenciamento e reutilização

O código deste projeto é fornecido sob a licença MIT. Incentivamos nossos clientes a tratá-lo como uma fonte de inspiração ou até mesmo a usar diretamente suas partes em suas aplicações.