Get in Touch
 Duration 14 hours

Course Outline

Media Devices Handling

Browser Permissions with navigator.permissions

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

Reading Media Devices with navigator.mediaDevices

  • Enumerating devices
  • Managing device changes

Cross-browser Compatibility

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

Media Device Management

  • Device initialization via getUserMedia(constraints)
  • Configuring media device constraints
  • Controlling media stream start and stop
  • Responding to device changes

Recording Devices with MediaRecorder

  • Initiating and terminating streaming and recording
  • Downloading .webm files
  • Generating real-time waveform previews

Optional Add-ons:

  • Saving audio in .wav format using ScriptProcessorNode
  • Visualizing audio FFT spectra
  • Displaying volume bars in decibels
  • Implementing voice recognition with webkitSpeechRecognition

Peer Connection

Signaling Servers

  • Bidirectional channel options:
    • WebSocket
    • Socket.io
    • SignalR
  • Message structure design
  • Building a simplified WebRTC client
  • Complete signaling flow

Video Chat via WebRTC

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

Optional Features:

  • Handling call hang-ups (closing connections, 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 content structure
  • Parsing and interpreting SDP
  • Codecs:
    • Audio & Video
    • Negotiation and control mechanisms
    • Fallback strategies

WebRTC Statistics with getStats()

  • Categories of statistics
  • Interpreting statistical data
  • Visualizing live bitrate and jitter charts
  • Strategies for quality adaptation

All of the topic are

  • Hands-on use-case

Requirements

Suited for frontend and full-stack developers, technical architects, and engineers implementing browser-based real-time features such as video chat, screen sharing, or audio streaming, this course assumes a solid understanding of JavaScript and web technologies. Experience with Node.js and WebSocket-based communication is beneficial but not required.

Number of participants


Price per participant

Testimonials (3)

Upcoming Courses

Related Categories