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](https://pt.teamdev.com/jxbrowser/gallery/screen-sharing/screen-sharing.webp)
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:
- Suporte multiplataforma para Windows, macOS e Linux, com várias arquiteturas, também.
- A implementação do WebRTC provém do Chromium, que é constantemente atualizado com melhorias de desempenho e correções de segurança.
- Seguir um padrão aberto facilita a integração com outras plataformas, como celular.
- 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.