Schița de curs
Ziua 1 – Manipularea Dispozitivelor Media
1. Permisiunile Browserului cu navigator.permissions
- Accessare hardware:
- Webcam
- Microfon
- Permisiuni opționale:
- Geolocalizare
- Notificări
- Clipboard (citire/scriere)
- Interogarea și starea permisiunilor
- Limitațiile și compatibilitatea cu browserul
- Cazuri de utilizare practică
2. Citirea Dispozitivelor Media cu navigator.mediaDevices
- Enumerația dispozitivelor
- Gestionarea schimbărilor de dispozitive
- Cazuri de utilizare practică
3. Compatibilitate Inter-browser
- Utilizarea API-urilor:
- navigator.permissions.query()
- navigator.mediaDevices.enumerateDevices()
- getUserMedia()
- Strategie de rezervă pentru Safari
- Cazuri de utilizare practică
4. Manipularea Dispozitivelor Media
- Ințelegerea dispozitivului: getUserMedia(constraints)
- Constrângeri ale dispozitelor media
- Pornirea și oprirea fluxurilor de medii
- Gestionarea schimbărilor de dispozitive
- Cazuri de utilizare practică
5. Înregistrarea Dispozitelor cu MediaRecorder
- Pornire/Oprire a streaming-ului și înregistrării
- Descărcarea fișierului .webm
- Vizualizare în timp real a formei de undă
- Cazuri de utilizare practică
Adăugiri Opționale:
- Salvarea în format .wav folosind ScriptProcessorNode
- Vizualizarea spectrului FFT al sunetului
- Bare de volum în decibeli
- Reconoscerea vocală cu webkitSpeechRecognition
Ziua 2 – Conexiunea Peer
1. Servere de Semnalizare
- Opțiuni pentru canale bidirecționale:
- WebSocket
- Socket.io
- SignalR
- Structura mesajelor
- Client simplificat WebRTC
- Flux de semnalizare complet
- Cazuri de utilizare practică
2. Chat Video prin WebRTC
- Arhitectură: Node.js + ws
- Client WebRTC: RTCPeerConnection
- Testare E2E locală
- Cazuri de utilizare practică
Funcții Opționale:
- Închiderea apelului (închiderea conexiunii, oprirea mediilor)
- Apele grupale (camere multiutilizator)
- Autentificare simplă bazată pe token
3. Compartimentarea Ecranului
- Folosirea getDisplayMedia()
- Arhitectură și opțiuni
- Cazuri de utilizare practică
4. Protocolul de Descriere a Sesiunii (SDP)
- Introducere și conținut
- Citirea și interpretarea SDP
- Codificări:
- Audio & Video
- Negocierea și controlul
- Strategii de rezervă
- Cazuri de utilizare practică
5. WebRTC Statistics cu getStats()
- Tipurile de statistici
- Modul de interpretare a statisticilor
- Grafice live pentru bitrate/jitter
- Strategii de adaptare a calității
- Cazuri de utilizare practică
Cerințe
Mărturii (5)
Mi-a plăcut modul în care Gunnar a scris aproape tot codul în timp ce îl parcurgeam, dar că a existat o mulțime de materiale pre-pregătite pe unitatea Google la care mă pot referi după instruire. Codul scris de Gunnar pe baza datelor de probă pe care le-am furnizat în prealabil a fost, de asemenea, extrem de util și a făcut ca instruirea să fie relevantă pentru propriile noastre seturi de date.
Ranvir - Schroders Personal Wealth
Curs - Visual Studio Code
Tradus de catre o masina
Subiectele discutate, multe exemple de cod live, atitudinea formatorului față de grupul de participanți
Weronika - ATOS PGS sp. z o.o.
Curs - Reactive Programming with Angular RxJS
Tradus de catre o masina
Deși a fost o formare online, interacțiunea cu antrenorul a fost remarabilă și acesta era întotdeauna disponibil pentru a oferi surse valabile care au completat formarea. Sunt foarte satisfăcut.
Nuno Marques - MULTICERT, S.A.
Curs - Functional Reactive Programming with Java 9 and RxJava
Tradus de catre o masina
Entuziasmul formatorului față de subiectul abordat
Matthew Fowles - AGRO Merchants Whitchurch Limited
Curs - Web Application Development in PHP
Tradus de catre o masina
Ritmul, adâncimea și explicațiile erau toate excelente. Este clar că Scott este un expert în domeniu și a fost super plăcut să învețăm de la el.
Ben Leiken - SurveyMonkey
Curs - Reactive Programming for iOS with RxSwift
Tradus de catre o masina