Programa do Curso

Dia 1 – Manipulação de Dispositivos Mídia

1. Permissões do Navegador com navigator.permissions

  • Accessndo hardware:
    • Câmera web
    • Microfone
  • Permissões opcionais:
    • Geolocalização
    • Notificações
    • Área de transferência (leitura/escrita)
  • Pesquisa e status das permissões
  • Limitações e compatibilidade do navegador
  • Caso prático

2. Leitura de Dispositivos Mídia com navigator.mediaDevices

  • Enumeração de dispositivos
  • Manipulação de alterações nos dispositivos
  • Caso prático

3. Compatibilidade Cross-browser

  • Uso da API:
    • navigator.permissions.query()
    • navigator.mediaDevices.enumerateDevices()
    • getUserMedia()
  • Estratégia de fallback para Safari
  • Caso prático

4. Manipulação de Dispositivos Mídia

  • Inicialização do dispositivo: getUserMedia(constraints)
  • Restrições de dispositivos mídia
  • Início e parada das transmissões de mídia
  • Manipulação de alterações nos dispositivos
  • Caso prático

5. Gravação de Dispositivos com MediaRecorder

  • Início/parada da transmissão e gravação
  • Baixar arquivo .webm
  • Pré-visualização em tempo real do waveform
  • Caso prático

Adicionais Opcionais:

  • Salvar no formato .wav usando ScriptProcessorNode
  • Visualização do espectro FFT de áudio
  • Barras de volume em decibéis
  • Reconhecimento de voz com webkitSpeechRecognition

Dia 2 – Conexão Peer-to-Peer

1. Servidores de Sinalização

  • Opções de canais bidirecionais:
    • WebSocket
    • Socket.io
    • SignalR
  • Estrutura da mensagem
  • Cliente simplificado WebRTC
  • Fluxo completo de sinalização
  • Caso prático

2. Chat de Vídeo via WebRTC

  • Arquitetura: Node.js + ws
  • Cliente WebRTC: RTCPeerConnection
  • Testes E2E locais
  • Caso prático

Recursos Opcionais:

  • Desligar chamada (fechar conexão, parar mídia)
  • Ligação em grupo (salas de múltiplos usuários)
  • Autenticação simples baseada em tokens

3. Compartilhamento de Tela

  • Uso do getDisplayMedia()
  • Arquitetura e opções
  • Caso prático

4. Protocolo de Descrição de Sessão (SDP)

  • Introdução e conteúdo
  • Lendo e interpretando SDP
  • Codificadores:
    • Áudio & Vídeo
    • Negociação e controle
    • Estratégias de fallback
  • Caso prático

5. WebRTC Statistics com getStats()

  • Tipo de estatísticas
  • Como interpretar as estatísticas
  • Gráficos ao vivo de taxa de bits/jitter
  • Estratégias de adaptação da qualidade
  • Caso prático

 

Requisitos

Este curso é ideal para desenvolvedores frontend e full-stack, arquitetos técnicos e engenheiros que estão construindo recursos de comunicação em tempo real baseados em navegador, como chat de vídeo, compartilhamento de tela ou transmissão de áudio. Os participantes devem ter conhecimento prático de JavaScript e tecnologias web, com experiência opcional em Node.js e comunicação baseada em WebSocket.
 14 Horas

Declaração de Clientes (5)

Próximas Formações Provisórias

Categorias Relacionadas