Some fixes

This commit is contained in:
Tronax 2026-05-15 21:11:59 +02:00
parent ec216264b1
commit cf0703f7f5
13 changed files with 798 additions and 0 deletions

58
README.md Normal file
View file

@ -0,0 +1,58 @@
# Volume Booster — Chrome Extension
Ein Volume Booster für Chrome: macht jeden Tab lauter (bis 600 %) oder leiser,
mit stummschalten und Schnellwahl-Presets.
## Installieren
1. ZIP entpacken (falls noch nicht geschehen).
2. In Chrome `chrome://extensions` öffnen.
3. Oben rechts **Entwicklermodus** einschalten.
4. **Entpackte Erweiterung laden** klicken und den Ordner `volume-booster` auswählen.
5. Das Lautsprecher-Icon erscheint in der Toolbar — anpinnen, fertig.
## Benutzen
- Auf das Icon klicken, um das Panel zu öffnen.
- **Slider** ziehen oder die **+ / ** Knöpfe nutzen (10 %-Schritte).
- **Mute**-Knopf (mittig) schaltet stumm und beim erneuten Klick wieder zurück.
- **Presets**: 100 % / 200 % / 400 % / 600 % für einen Klick.
- Pfeiltasten ↑ / ↓ funktionieren ebenfalls, wenn das Panel offen ist.
## Wie es funktioniert
- Bis **100 %** passiert nichts Besonderes — die Seite spielt normal.
- Über **100 %** holt der Service Worker per `chrome.tabCapture.getMediaStreamId`
eine Stream-ID des Tabs und reicht sie an ein **Offscreen-Dokument** weiter.
Dort wird der Stream durch einen Web-Audio `GainNode` geschickt und
verstärkt wieder ausgegeben.
- Der Umweg über das Offscreen-Dokument ist in Manifest V3 nötig: Der
Service Worker hat kein DOM und kann selbst kein Audio verarbeiten.
- Pro Tab wird ein eigener Verstärkungswert gespeichert (für die Session).
- Schließt du den Tab oder lädst ihn neu, wird der Stream sauber freigegeben.
## Hinweise
- Bei sehr hohen Werten kann der Ton übersteuern/verzerren — das ist eine
physikalische Grenze der Quelle, dann einfach etwas zurückdrehen.
- Funktioniert nicht auf internen Seiten wie `chrome://`,
dem Web Store oder anderen Extension-Seiten — dort gibt Chrome keinen
Audio-Stream frei.
- Beim ersten Verstärken eines Tabs muss kurz Audio laufen, damit Chrome
den Stream herausgibt.
- Verstärkung gilt jeweils für den Tab, in dem du sie einstellst.
- Nach einem Update der Extension immer einmal auf `chrome://extensions`
neu laden.
## Dateien
| Datei | Zweck |
|------------------|----------------------------------------------------------|
| `manifest.json` | Extension-Manifest (Manifest V3) |
| `background.js` | Service Worker — holt Stream-ID, steuert Offscreen-Doc |
| `offscreen.html` | Unsichtbares Dokument, Träger des Audio-Codes |
| `offscreen.js` | AudioContext + GainNode — das eigentliche Verstärken |
| `popup.html` | Aufbau des Interfaces |
| `popup.css` | Styling (dunkles Studio-Theme, Amber-Akzent) |
| `popup.js` | Logik, State, Kommunikation mit dem Worker |
| `icons/` | Icon in 16 / 32 / 48 / 128 px + SVG-Quelle |