Cursusaanbod
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
Vereisten
Testimonials (5)
Ik vond het leuk hoe Gunnar vrijwel alle code on-the-fly schreef terwijl we doorgingen, maar dat er genoeg vooraf voorbereid materiaal op de Google Drive stond waar ik na de training naar kan verwijzen. De code die Gunnar schreef op basis van de voorbeeldgegevens die ik vooraf had aangeleverd, was ook uiterst nuttig en maakte de training ook relevant voor onze eigen datasets.
Ranvir - Schroders Personal Wealth
Cursus - Visual Studio Code
Automatisch vertaald
Onderwerpen die zijn besproken, veel live codevoorbeelden, de houding van de trainers tegenover de groep
Weronika - ATOS PGS sp. z o.o.
Cursus - Reactive Programming with Angular RxJS
Automatisch vertaald
Hoewel het een online training was, was de interactie met de trainer opvallend en stond deze altijd klaar om waardevolle bronnen te leveren om de training aan te vullen. Ik ben heel tevreden.
Nuno Marques - MULTICERT, S.A.
Cursus - Functional Reactive Programming with Java 9 and RxJava
Automatisch vertaald
Trainers enthousiasme rond het onderwerp
Matthew Fowles - AGRO Merchants Whitchurch Limited
Cursus - Web Application Development in PHP
Automatisch vertaald
Pacing, diepte en uitleg waren allemaal geweldig. Het is duidelijk dat Scott een expert op dit gebied is en het van hem leren was super leuk.
Ben Leiken - SurveyMonkey
Cursus - Reactive Programming for iOS with RxSwift
Automatisch vertaald