23 lines
1.1 KiB
Markdown
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).
|