Programa do Curso

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

1. Permissões do Navegador com navigator.permissions

  • Acesso ao hardware:
    • Câmera Web
    • Micrófono
  • Permissões opcionais:
    • Geolocalização
    • Área de transferência (leitura/escrita)
  • Consulta e status das permissões
  • Limitações e compatibilidade do navegador
  • Caso prático

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

  • Enumeração de dispositivos
  • Lidando com mudanças nos dispositivos
  • Caso prático

3. Compatibilidade entre Navegadores

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

4. Manipulação de Dispositivos de Mídia

  • Inicialização do dispositivo: getUserMedia(constraints)
  • Restrições dos dispositivos de mídia
  • Iniciar e parar fluxos de mídia
  • Lidando com mudanças nos dispositivos
  • Caso prático

5. Gravação de Dispositivos com MediaRecorder

  • Iniciar/parar streaming e gravação
  • Baixar arquivo .webm
  • Prévia em tempo real da forma de onda
  • Caso prático

Adições 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 das mensagens
  • Cliente WebRTC simplificado
  • Fluxo completo de sinalização
  • Caso prático

2. Chat de Vídeo via WebRTC

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

Recursos Opcionais:

  • Desligar a chamada (fechar conexão, parar mídia)
  • Chamadas em grupo (salas multi-usuário)
  • Autenticação simples baseada em token

3. Compartilhamento de Tela

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

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

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

5. Estatísticas WebRTC com getStats()

  • Tipos de estatísticas
  • Como interpretar as estatísticas
  • Gráficos em tempo real de taxa de bits/jitter
  • Estratégias de adaptação de qualidade
  • Caso prático

 

Requisitos

Este curso é ideal para desenvolvedores frontend e full-stack, arquitetos técnicos e engenheiros construindo recursos de comunicação em tempo real baseados em navegador, como vídeo chamada, compartilhamento de tela ou streaming 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