Plan du cours
Jour 1 – Gestion des Dispositifs Médias
1. Permissions du Navigateur avec navigator.permissions
- Gestion de matériel:
- Webcam
- Microphone
- Permissions optionnelles:
- Géolocalisation
- Notifications
- Presse-papiers (lecture/écriture)
- Requêtes et statut des permissions
- Limitations et compatibilité des navigateurs
- Cas d'utilisation pratique
2. Lecture des Dispositifs Médias avec navigator.mediaDevices
- Énumération des dispositifs
- Gestion des changements de dispositif
- Cas d'utilisation pratique
3. Compatibilité Multi-navigateurs
- Utilisation des API:
- navigator.permissions.query()
- navigator.mediaDevices.enumerateDevices()
- getUserMedia()
- Stratégie de remplacement pour Safari
- Cas d'utilisation pratique
4. Gestion des Dispositifs Médias
- Initialisation du dispositif: getUserMedia(constraints)
- Contraintes de dispositif média
- Démarrage et arrêt des flux multimédias
- Gestion des changements de dispositif
- Cas d'utilisation pratique
5. Enregistrement avec MediaRecorder
- Démarrer/arrêter le streaming et l'enregistrement
- Télécharger un fichier .webm
- Aperçu en temps réel de la forme d'onde
- Cas d'utilisation pratique
Modules Optionnels:
- Sauvegarde au format .wav avec ScriptProcessorNode
- Visionneuse du spectre FFT audio
- Baremètre en décibels
- Reconnaissance vocale avec webkitSpeechRecognition
Jour 2 – Connexion Pair à Pair
1. Serveurs de Signaling
- Options pour le canal bidirectionnel:
- WebSocket
- Socket.io
- SignalR
- Structure des messages
- Client simplifié WebRTC
- Flux de signalement complet
- Cas d'utilisation pratique
2. Chat Vidéo via WebRTC
- Architecture: Node.js + ws
- Client WebRTC: RTCPeerConnection
- Tests E2E locaux
- Cas d'utilisation pratique
Fonctionnalités Optionnelles:
- Raccrochement de l'appel (fermeture de la connexion, arrêt du média)
- Appels en groupe (salles multi-utilisateurs)
- Authentification simple basée sur des jetons
3. Partage d'écran
- Utilisation de getDisplayMedia()
- Architecture et options
- Cas d'utilisation pratique
4. Protocole de Description de Session (SDP)
- Introduction et contenus
- Lecture et interprétation du SDP
- Codecs:
- AUDIO & VIDÉO
- Négociation et contrôle
- Stratégies de remplacement
- Cas d'utilisation pratique
5. WebRTC Statistics avec getStats()
- Types de statistiques
- Comment interpréter les statistiques
- Graphiques en temps réel du débit et des interférences
- Stratégies d'adaptation de la qualité
- Cas d'utilisation pratique
Pré requis
Nos clients témoignent (5)
J'ai apprécié le fait que Gunnar ait écrit pratiquement tout le code à la volée pendant que nous le parcourions, mais qu'il y ait beaucoup de matériel préparé à l'avance sur le lecteur Google auquel je peux me référer après la formation. Le code que Gunnar a écrit sur la base de l'échantillon de données que j'ai fourni à l'avance a également été extrêmement utile et a rendu la formation pertinente pour nos propres ensembles de données.
Ranvir - Schroders Personal Wealth
Formation - Visual Studio Code
Traduction automatique
Sujets abordés, de nombreux exemples de code en direct, attitude des formateurs vis-à-vis du groupe
Weronika - ATOS PGS sp. z o.o.
Formation - Reactive Programming with Angular RxJS
Traduction automatique
Bien que la formation se déroule en ligne, l'interaction avec le formateur était remarquable et il était toujours disponible pour fournir des sources précieuses complétant la formation. Je suis très satisfait.
Nuno Marques - MULTICERT, S.A.
Formation - Functional Reactive Programming with Java 9 and RxJava
Traduction automatique
Enthousiasme du formateur sur le sujet
Matthew Fowles - AGRO Merchants Whitchurch Limited
Formation - Web Application Development in PHP
Traduction automatique
Le rythme, la profondeur et les explications étaient tous excellents. Il est clair que Scott est un expert sur le sujet et apprendre de lui était super agréable.
Ben Leiken - SurveyMonkey
Formation - Reactive Programming for iOS with RxSwift
Traduction automatique