Course Outline
Managing Media Devices
Browser Permissions via navigator.permissions
- Hardware access:
- Webcam
- Microphone
- Optional permissions:
- Geolocation
- Notifications
- Clipboard (read/write)
- Querying permissions and checking status
- Limitations and browser compatibility considerations
Accessing Media Devices with navigator.mediaDevices
- Enumerating available devices
- Managing device changes
Cross-browser Compatibility
- API implementation:
- navigator.permissions.query()
- navigator.mediaDevices.enumerateDevices()
- getUserMedia()
- Safari fallback strategies
Handling Media Devices
- Device initialization: getUserMedia(constraints)
- Configuring media device constraints
- Starting and stopping media streams
- Responding to device changes
Recording with MediaRecorder
- Controlling streaming and recording start/stop
- Downloading .webm files
- Generating real-time waveform previews
Optional Extensions:
- Saving audio in .wav format using ScriptProcessorNode
- Visualizing Audio FFT spectrum
- Displaying volume bars in decibels
- Voice recognition using webkitSpeechRecognition
Peer Connection
Signaling Servers
- Bidirectional channel options:
- WebSocket
- Socket.io
- SignalR
- Message structure
- Simplified WebRTC client implementation
- Complete signaling flow
Video Chat using WebRTC
- Architecture: Node.js + ws
- WebRTC client: RTCPeerConnection
- Local End-to-End testing
Optional Features:
- Ending calls (closing connection, stopping media)
- Group calling (multi-user rooms)
- Token-based simple authentication
Screen Sharing
- Utilizing getDisplayMedia()
- Architecture and configuration options
Session Description Protocol (SDP)
- Overview and components
- Reading and interpreting SDP
- Codecs:
- Audio & Video
- Negotiation and control
- Fallback strategies
WebRTC Statistics via getStats()
- Categories of statistics
- Interpreting statistical data
- Live bitrate/jitter charts
- Quality adaptation strategies
Coverage of All Topics
- Hands-on use cases
Requirements
This course is specifically designed for frontend and full-stack developers, technical architects, and engineers working on browser-based real-time features such as video chat, screen sharing, or audio streaming. Participants are expected to have a functional understanding of JavaScript and web technologies, with beneficial prior experience in Node.js and WebSocket-based communication.
Testimonials (1)
The training helped me expand my knowledge and understanding of Burp Suite. I also realized that what I had learned through self-study was still quite limited. This training was very helpful to me as a QA because Burp Suite is a valuable tool for performing security testing and improving the overall quality of application testing. I will continue exploring this tool and learning more about its features and capabilities.