Get in Touch
 Duration 14 hours

Course Outline

Handling Media Devices

Managing Browser Permissions via navigator.permissions

  • Hardware access:
    • Webcam
    • Microphone
  • Optional permissions:
    • Geolocation
    • Notifications
    • Clipboard (read and write)
  • Querying permissions and checking status
  • Limitations and browser compatibility considerations

Accessing Media Devices via navigator.mediaDevices

  • Enumerating available devices
  • Managing device changes

Cross-Browser Compatibility

  • API usage:
    • navigator.permissions.query()
    • navigator.mediaDevices.enumerateDevices()
    • getUserMedia()
  • Fallback strategies for Safari

Media Device Management

  • Device initialization: getUserMedia(constraints)
  • Configuring media device constraints
  • Controlling the start and stop of media streams
  • Managing device changes

Recording Devices 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 levels in decibels
  • Implementing voice recognition with webkitSpeechRecognition

Peer Connections

Signaling Servers

  • Options for bidirectional channels:
    • WebSocket
    • Socket.io
    • SignalR
  • Message structure
  • Simplified WebRTC client implementation
  • Complete signaling flow

Video Chat using WebRTC

  • Architecture: Node.js + ws
  • WebRTC client implementation: RTCPeerConnection
  • Local end-to-end testing

Optional Features:

  • Call hang-up (closing connection and stopping media)
  • Group calling (multi-user rooms)
  • Simple token-based authentication

Screen Sharing

  • Utilizing getDisplayMedia()
  • Architectural considerations and options

Session Description Protocol (SDP)

  • Overview and key components
  • Reading and interpreting SDP
  • Codecs:
    • Audio and Video
    • Negotiation and control
    • Fallback strategies

WebRTC Statistics using getStats()

  • Types of available statistics
  • Methods for interpreting stats
  • Live bitrate and jitter charts
  • Strategies for quality adaptation

Comprehensive Topic Review

  • Hands-on use-case application

Requirements

This course is tailored for frontend and full-stack developers, technical architects, and engineers focused on building browser-based real-time communication features, such as video chat, screen sharing, or audio streaming. Participants are expected to have a solid understanding of JavaScript and web technologies, with a background in Node.js and WebSocket-based communication being advantageous.

Number of participants


Price per participant

Testimonials (3)

Upcoming Courses

Related Categories