Get in Touch
 Duration 14 hours

Course Outline

Managing Media Devices

Browser Permissions via navigator.permissions

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

Retrieving Media Devices using navigator.mediaDevices

  • Listing available devices
  • Managing device changes

Ensuring Cross-Browser Compatibility

  • API implementation:
    • navigator.permissions.query()
    • navigator.mediaDevices.enumerateDevices()
    • getUserMedia()
  • Safari fallback approaches

Media Device Management

  • Initializing devices: getUserMedia(constraints)
  • Defining media device constraints
  • Controlling media stream start and stop
  • Responding to device changes

Recording Devices using MediaRecorder

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

Optional Extensions:

  • Exporting audio in .wav format using ScriptProcessorNode
  • Visualizing Audio FFT spectrum
  • Displaying volume bars in decibels
  • Implementing voice recognition with webkitSpeechRecognition

Peer Connections

Signaling Servers

  • Bidirectional channel options:
    • WebSocket
    • Socket.io
    • SignalR
  • Structuring messages
  • Creating a simplified WebRTC client
  • Completing the signaling flow

Video Chat using WebRTC

  • System architecture: Node.js + ws
  • WebRTC client setup: RTCPeerConnection
  • Local end-to-end testing

Optional Enhancements:

  • Ending calls (closing connections, stopping media)
  • Group calling (multi-user rooms)
  • Basic token-based authentication

Screen Sharing

  • Utilizing getDisplayMedia()
  • Architectural considerations and options

Session Description Protocol (SDP)

  • Overview and components
  • Parsing and interpreting SDP
  • Codecs:
    • Audio & Video
    • Negotiation and management
    • Fallback strategies

WebRTC Statistics via getStats()

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

Coverage of all topics

  • Practical use-case implementation

Requirements

This course is well-suited 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 web technologies, with experience in Node.js and WebSocket-based communication being beneficial but not strictly required.

Custom Corporate Training

Training solutions designed exclusively for businesses.

  • Customized Content: We adapt the syllabus and practical exercises to the real goals and needs of your project.
  • Flexible Schedule: Dates and times adapted to your team's agenda.
  • Format: Online (live), In-company (at your offices), or Hybrid.
Investment

Price per private group, online live training, starting from 2600 € + VAT*

Contact us for an exact quote and to hear our latest promotions

Testimonials (3)

Provisional Upcoming Courses (Contact Us For More Information)

Related Categories