Struttura del corso

Giorno 1 – Gestione Dispositivi Multimediali

1. Permessi del Browser con navigator.permissions

  • Accesso alle periferiche:
    • Webcam
    • Microfono
  • Permessi facoltativi:
    • Geolocalizzazione
    • Notifiche
    • Clipboard (lettura/scrittura)
  • Query e stato dei permessi
  • Limitazioni e compatibilità con i browser
  • Caso pratico a mani sporche

2. Lettura Dispositivi Multimediali con navigator.mediaDevices

  • Elencazione dei dispositivi
  • Gestione delle variazioni dei dispositivi
  • Caso pratico a mani sporche

3. Compatibilità Cross-Browser

  • Utilizzo dell'API:
    • navigator.permissions.query()
    • navigator.mediaDevices.enumerateDevices()
    • getUserMedia()
  • Strategia di fallback per Safari
  • Caso pratico a mani sporche

4. Gestione Dispositivi Multimediali

  • Inizializzazione del dispositivo: getUserMedia(constraints)
  • Constrain dei dispositivi multimediali
  • Inizio e stop degli stream multimediali
  • Gestione delle variazioni dei dispositivi
  • Caso pratico a mani sporche

5. Registrazione Dispositivi con MediaRecorder

  • Inizio/stop dello streaming e registrazione
  • Download del file .webm
  • Anteprima della forma d'onda in tempo reale
  • Caso pratico a mani sporche

Add-ons Facoltativi:

  • Salvataggio in formato .wav utilizzando ScriptProcessorNode
  • Visualizzazione dello spettro FFT audio
  • Barra del volume in decibel
  • Riconoscimento vocale con webkitSpeechRecognition

Giorno 2 – Connessione Peer-to-Peer

1. Server di Segnalazione

  • Opzioni per canali bidirezionali:
    • WebSocket
    • Socket.io
    • SignalR
  • Struttura dei messaggi
  • Client WebRTC semplificato
  • Flusso completo di segnalazione
  • Caso pratico a mani sporche

2. Chat Video tramite WebRTC

  • Architettura: Node.js + ws
  • Client WebRTC: RTCPeerConnection
  • Test locale E2E
  • Caso pratico a mani sporche

Funzionalità Facoltative:

  • Chiusura della chiamata (chiusura connessione, stop media)
  • Chiamate di gruppo (stanze multi-utente)
  • Autenticazione semplice basata su token

3. Condivisione dello Schermo

  • Utilizzo di getDisplayMedia()
  • Architettura e opzioni
  • Caso pratico a mani sporche

4. Protocollo Session Description (SDP)

  • Introduzione e contenuti
  • Lettura e interpretazione di SDP
  • Codec:
    • Audio & Video
    • Negoziazione e controllo
    • Strategie di fallback
  • Caso pratico a mani sporche

5. Statistiche WebRTC con getStats()

  • Tipi di statistiche
  • Come interpretare le statistiche
  • Grafici live del bitrate/jitter
  • Strategie di adattamento della qualità
  • Caso pratico a mani sporche

 

Requisiti

Questo corso è ideale per sviluppatori frontend e full-stack, architetti tecnici e ingegneri che stanno costruendo funzionalità di comunicazione in tempo reale basate su browser, come videochat, condivisione dello schermo o streaming audio. I partecipanti dovrebbero avere una conoscenza pratica di JavaScript e tecnologie web, con esperienza facoltativa in Node.js e comunicazione basata su WebSocket.
 14 Ore

Numero di Partecipanti


Prezzo per Partecipante

Recensioni (5)

Corsi in Arrivo

Categorie relative