niom-webrtc/docs/utils/media_manager.md

23 lines
1.1 KiB
Markdown

# 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).