niom-webrtc/docs/utils/media_manager.md

1.1 KiB

MediaManager Utility

Aufgaben

  • Kapselt WebRTC-/Media-APIs (RtcPeerConnection, MediaStream).
  • Stellt Hilfsmethoden bereit für Offer/Answer, ICE-Kandidaten und Mikrofonzugriff.

Hauptmethoden

  • create_peer_connection() → Erstellt RtcPeerConnection mit Default-STUN.
  • create_offer(pc) / handle_offer(pc, sdp) / handle_answer(pc, sdp) → Asynchrone SDP-Verarbeitung.
  • request_microphone_access() → Lädt Audio-Stream via navigator.mediaDevices.getUserMedia.
  • add_stream_to_pc(pc, stream) → Fügt Tracks via dynamischem addTrack hinzu.
  • add_ice_candidate(pc, candidate_json) → Parsed JSON und ruft addIceCandidate.
  • stop_stream() → Stoppt aktive Tracks.

Zustandsverwaltung

  • state: MediaState (enum Uninitialized, Requesting, Granted, Denied, NotSupported). Dient für UI-Feedback.

TODOs

  • Mehrere ICE-Server aus Config berücksichtigen.
  • Fehlerbehandlung vereinheitlichen (eigene Error-Typen, Logging).
  • Audio-Level-Monitoring (AnalyserNode) einbauen.
  • Video-Streams unterstützen (getUserMedia-Constraints).