Plan Szkolenia
Day 1 – Media Devices Handling
1. Browser Permissions with navigator.permissions
- Accessing hardware:
- Webcam
- Microphone
- Optional permissions:
- Geolocation
- Notifications
- Clipboard (read/write)
- Permission querying and status
- Limitations and browser compatibility
- Hands-on use-case
2. Reading Media Devices with navigator.mediaDevices
- Device enumeration
- Handling device changes
- Hands-on use-case
3. Cross-browser Compatibility
- API usage:
- navigator.permissions.query()
- navigator.mediaDevices.enumerateDevices()
- getUserMedia()
- Safari fallback strategy
- Hands-on use-case
4. Media Device Handling
- Device initialization: getUserMedia(constraints)
- Media device constraints
- Starting and stopping media streams
- Handling device changes
- Hands-on use-case
5. Recording Devices with MediaRecorder
- Start/stop streaming and recording
- Download .webm file
- Real-time waveform preview
- Hands-on use-case
Optional Add-ons:
- Save in .wav format using ScriptProcessorNode
- Audio FFT spectrum visualization
- Volume bar in decibels
- Voice recognition with webkitSpeechRecognition
Day 2 – Peer Connection
1. Signaling Servers
- Bidirectional channel options:
- WebSocket
- Socket.io
- SignalR
- Message structure
- Simplified WebRTC client
- Full signaling flow
- Hands-on use-case
2. Video Chat via WebRTC
- Architecture: Node.js + ws
- WebRTC client: RTCPeerConnection
- Local E2E testing
- Hands-on use-case
Optional Features:
- Call hang-up (close connection, stop media)
- Group calling (multi-user rooms)
- Token-based simple authentication
3. Screen Sharing
- Use of getDisplayMedia()
- Architecture and options
- Hands-on use-case
4. Session Description Protocol (SDP)
- Introduction and contents
- Reading and interpreting SDP
- Codecs:
- Audio & Video
- Negotiation and control
- Fallback strategies
- Hands-on use-case
5. WebRTC Statistics with getStats()
- Types of statistics
- How to interpret stats
- Live bitrate/jitter charts
- Quality adaptation strategies
- Hands-on use-case
Wymagania
Opinie uczestników (5)
Podobało mi się to, że Gunnar pisał prawie cały kod na bieżąco, ale na dysku Google było mnóstwo wstępnie przygotowanych materiałów, do których mogłem się odwołać po szkoleniu. Kod napisany przez Gunnara na podstawie przykładowych danych, które dostarczyłem wcześniej, był również niezwykle przydatny i sprawił, że szkolenie było istotne dla naszych własnych zestawów danych.
Ranvir - Schroders Personal Wealth
Szkolenie - Visual Studio Code
Przetłumaczone przez sztuczną inteligencję
Tematy, które zostały omówione, wiele przykładów kodu na żywo, postawa trenera wobec grupy
Weronika - ATOS PGS sp. z o.o.
Szkolenie - Reactive Programming with Angular RxJS
Przetłumaczone przez sztuczną inteligencję
Chociaż kurs odbywał się online, interakcje z trenerem były niesamowite, a ten zawsze był dostępny, aby dostarczać wartościowych źródeł uzupełniających szkolenie. Jestem bardzo zadowolony.
Nuno Marques - MULTICERT, S.A.
Szkolenie - Functional Reactive Programming with Java 9 and RxJava
Przetłumaczone przez sztuczną inteligencję
Zapał trenera do tematu
Matthew Fowles - AGRO Merchants Whitchurch Limited
Szkolenie - Web Application Development in PHP
Przetłumaczone przez sztuczną inteligencję
Pacing, głębokość i wyjaśnienia były wszystkich wzorców. Jest jasne, że Scott jest ekspertem w tej dziedzinie, a uczenie się u niego było niezwykle przyjemne.
Ben Leiken - SurveyMonkey
Szkolenie - Reactive Programming for iOS with RxSwift
Przetłumaczone przez sztuczną inteligencję