Course Outline
Managing Media Devices
1. Browser Permissions with navigator.permissions
- Accessing hardware:
- Webcam
- Microphone
- Optional permissions:
- Geolocation
- Notifications
- Clipboard (read/write)
- Querying permissions and checking status
- Limitations and browser compatibility considerations
2. Reading Media Devices with navigator.mediaDevices
- Enumerating devices
- Managing device changes
3. Cross-browser Compatibility
- API utilization:
- navigator.permissions.query()
- navigator.mediaDevices.enumerateDevices()
- getUserMedia()
- Strategies for Safari fallback
4. Media Device Handling
- Device initialization: getUserMedia(constraints)
- Configuring media device constraints
- Starting and stopping media streams
- Managing device changes
5. Recording Devices with MediaRecorder
- Initiating and halting streaming and recording
- Downloading .webm files
- Previewing real-time waveforms
Optional Enhancements:
- Exporting to .wav format via ScriptProcessorNode
- Visualizing audio FFT spectrum
- Displaying volume levels in decibels
- Integrating voice recognition using webkitSpeechRecognition
Peer Connection
1. Signaling Servers
- Options for bidirectional communication:
- WebSocket
- Socket.io
- SignalR
- Structure of messages
- Building a simplified WebRTC client
- Executing a complete signaling flow
2. Video Chat via WebRTC
- Architecture: Node.js combined with ws
- WebRTC client implementation using RTCPeerConnection
- Conducting local end-to-end testing
Optional Features:
- Implementing call hang-up functionality (closing connections, stopping media)
- Enabling group calling within multi-user rooms
- Incorporating token-based authentication
3. Screen Sharing
- Leveraging getDisplayMedia()
- Architectural design and available options
4. Session Description Protocol (SDP)
- Overview and structure of SDP
- Reading and interpreting SDP data
- Codec management:
- Audio & Video codecs
- Negotiation and control mechanisms
- Fallback strategies
5. WebRTC Statistics with getStats()
- Types of available statistics
- Interpreting statistical data
- Creating charts for live bitrate and jitter
- Strategies for quality adaptation
6. All topics are covered through
- Hands-on use-cases
Requirements
This course is particularly suited for frontend and full-stack developers, technical architects, and engineers developing real-time communication features for browsers, such as video chat, screen sharing, or audio streaming. Participants should possess a solid understanding of JavaScript and web technologies, with optional familiarity in Node.js and WebSocket-based communication being beneficial.
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.