58 lines
2.8 KiB
Markdown
58 lines
2.8 KiB
Markdown
# 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 |
|