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 available devices
  • Managing dynamic device changes

Cross-browser Compatibility

  • API Usage:
    • navigator.permissions.query()
    • navigator.mediaDevices.enumerateDevices()
    • getUserMedia()
  • Implementing fallback strategies for Safari

Media Device Handling

  • Device initialization via getUserMedia(constraints)
  • Configuring media device constraints
  • Controlling the start and stop of media streams
  • Reacting to device change events

Recording Devices with MediaRecorder

  • Managing stream start/stop and recording
  • Downloading .webm files
  • Generating real-time waveform previews

Optional Add-ons:

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

Peer Connection

Signaling Servers

  • Bidirectional Channel Options:
    • WebSocket
    • Socket.io
    • SignalR
  • Defining message structure
  • Building a simplified WebRTC client
  • Executing the full signaling flow

Video Chat via WebRTC

  • Architecture overview: Node.js + ws
  • Implementing the WebRTC client with RTCPeerConnection
  • Conducting local end-to-end testing

Optional Features:

  • Handling call termination (closing connection, stopping media)
  • Supporting group calls in multi-user rooms
  • Implementing simple token-based authentication

Screen Sharing

  • Leveraging getDisplayMedia()
  • Reviewing architecture and available options

Session Description Protocol (SDP)

  • Introduction to SDP and its components
  • Reading and interpreting SDP data
  • Codecs:
    • Audio & Video
    • Negotiation mechanisms and control
    • Implementing fallback strategies

WebRTC Statistics with getStats()

  • Understanding different statistic types
  • Interpreting statistical data
  • Creating live bitrate and jitter charts
  • Developing quality adaptation strategies

All of the topic are

  • Hands-on use-case

Requirements

This course is well-suited for frontend and full-stack developers, technical architects, and engineers responsible for developing 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, while experience with Node.js and WebSocket-based communication is considered beneficial but optional.

Number of participants


Price per participant

Testimonials (3)

Upcoming Courses

Related Categories