Get in Touch

Course Outline

Media Devices Handling

1. Browser Permissions with navigator.permissions

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

2. Accessing Media Devices via navigator.mediaDevices

  • Device enumeration
  • Managing device changes

3. Cross-browser Compatibility

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

4. Media Device Management

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

5. Recording Devices with MediaRecorder

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

Optional Extensions:

  • Saving audio in .wav format using ScriptProcessorNode
  • Audio FFT spectrum visualization
  • Volume bar display in decibels
  • Voice recognition using webkitSpeechRecognition

Peer Connection

1. Signaling Servers

  • Bidirectional channel options:
    • WebSocket
    • Socket.io
    • SignalR
  • Message structure
  • Streamlined WebRTC client
  • Complete signaling flow

2. Video Chat via WebRTC

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

Optional Features:

  • Call termination (closing connections and stopping media)
  • Group calling (multi-user rooms)
  • Token-based simple authentication

3. Screen Sharing

  • Utilization of getDisplayMedia()
  • Architecture and configuration options

4. Session Description Protocol (SDP)

  • Introduction and content overview
  • Reading and interpreting SDP
  • Codecs:
    • Audio & Video
    • Negotiation and control
    • Fallback strategies

5. WebRTC Statistics with getStats()

  • Categories of statistics
  • Interpreting statistical data
  • Live bitrate/jitter charts
  • Quality adaptation strategies

6. All of the topic are

  • Hands-on use-case

Requirements

This training is tailored for frontend and full-stack developers, technical architects, and engineers 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 core web technologies, while prior experience with Node.js and WebSocket-based communication is considered an asset.

 14 Hours

Number of participants


Price per participant

Testimonials (3)

Upcoming Courses

Related Categories