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 permissions and checking status
  • Limitations and browser compatibility considerations

2. Reading Media Devices with navigator.mediaDevices

  • Enumerating devices
  • Managing device changes

3. Cross-browser Compatibility

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

4. Media Device Handling

  • Device initialization: getUserMedia(constraints)
  • Configuring media device constraints
  • Starting and stopping media streams
  • Managing device changes

5. Recording Devices with MediaRecorder

  • Initiating and halting streaming and recording
  • Downloading .webm files
  • Previewing real-time waveforms

Optional Enhancements:

  • Exporting to .wav format via ScriptProcessorNode
  • Visualizing audio FFT spectrum
  • Displaying volume levels in decibels
  • Integrating voice recognition using webkitSpeechRecognition

Peer Connection

1. Signaling Servers

  • Options for bidirectional communication:
    • WebSocket
    • Socket.io
    • SignalR
  • Structure of messages
  • Building a simplified WebRTC client
  • Executing a complete signaling flow

2. Video Chat via WebRTC

  • Architecture: Node.js combined with ws
  • WebRTC client implementation using RTCPeerConnection
  • Conducting local end-to-end testing

Optional Features:

  • Implementing call hang-up functionality (closing connections, stopping media)
  • Enabling group calling within multi-user rooms
  • Incorporating token-based authentication

3. Screen Sharing

  • Leveraging getDisplayMedia()
  • Architectural design and available options

4. Session Description Protocol (SDP)

  • Overview and structure of SDP
  • Reading and interpreting SDP data
  • Codec management:
    • Audio & Video codecs
    • Negotiation and control mechanisms
    • Fallback strategies

5. WebRTC Statistics with getStats()

  • Types of available statistics
  • Interpreting statistical data
  • Creating charts for live bitrate and jitter
  • Strategies for quality adaptation

6. All topics are covered through

  • Hands-on use-cases

Requirements

This course is particularly suited for frontend and full-stack developers, technical architects, and engineers developing real-time communication features for browsers, such as video chat, screen sharing, or audio streaming. Participants should possess a solid understanding of JavaScript and web technologies, with optional familiarity in Node.js and WebSocket-based communication being beneficial.

 14 Hours

Number of participants


Price per participant

Testimonials (3)

Upcoming Courses

Related Categories