Get in Touch

Course Outline

Managing Media Devices

1. Browser Permissions with navigator.permissions

  • Accessing hardware:
    • Webcam
    • Microphone
  • Optional permissions:
    • Geolocation
    • Notifications
    • Clipboard (read/write)
  • Querying permission status
  • Limitations and browser compatibility

2. Reading Media Devices with navigator.mediaDevices

  • Enumerating devices
  • Handling device changes

3. Cross-browser Compatibility

  • API usage:
    • navigator.permissions.query()
    • navigator.mediaDevices.enumerateDevices()
    • getUserMedia()
  • Strategy for Safari fallback

4. Media Device Handling

  • Initialising devices: getUserMedia(constraints)
  • Configuring media device constraints
  • Starting and stopping media streams
  • Handling device changes

5. Recording Devices with MediaRecorder

  • Starting/stopping streaming and recording
  • Downloading .webm files
  • Real-time waveform previews

Optional Add-ons:

  • Saving in .wav format using ScriptProcessorNode
  • Visualizing the audio FFT spectrum
  • Displaying a volume bar in decibels
  • Voice recognition using webkitSpeechRecognition

Peer Connection

1. Signaling Servers

  • Bidirectional channel options:
    • WebSocket
    • Socket.io
    • SignalR
  • Message structure
  • Building a simplified WebRTC client
  • Executing the full signaling flow

2. Video Chat via WebRTC

  • Architecture: Node.js + ws
  • WebRTC client: RTCPeerConnection
  • Conducting local E2E testing

Optional Features:

  • Handling call hang-ups (closing connections, stopping media)
  • Facilitating group calls (multi-user rooms)
  • Implementing simple token-based authentication

3. Screen Sharing

  • Utilising getDisplayMedia()
  • Architecture and implementation options

4. Session Description Protocol (SDP)

  • Introduction and core contents
  • Reading and interpreting SDP
  • Codecs:
    • Audio & Video
    • Negotiation and control
    • Fallback strategies

5. WebRTC Statistics with getStats()

  • Types of statistics available
  • Interpreting stats effectively
  • Creating live bitrate/jitter charts
  • Strategies for quality adaptation

6. All topics include

  • Hands-on use cases

Requirements

This course is tailored for frontend and full-stack developers, technical architects, and engineers who are developing real-time communication features such as video chat, screen sharing, or audio streaming. Participants should possess a solid working knowledge of JavaScript and web technologies, with prior experience in Node.js and WebSocket-based communication being advantageous.

 14 Hours

Number of participants


Price per participant

Testimonials (3)

Provisional Upcoming Courses (Require 5+ participants)

Related Categories