Audioausgabe pro Tab: YouTube und YouTube Musik auf verschiedene Geraete legen
In den Einstellungen (Gruppe "Audioausgabe", Felder "YouTube" und "YouTube Musik") laesst sich getrennt waehlen, ueber welches Ausgabegeraet der Ton jedes Tabs laeuft - z.B. auf getrennte Sonar-Kanaele. Die Auswahl gilt sofort, auch fuer bereits geoeffnete Seiten. Warum ueber die Seite: QtWebEngine spielt beide Tabs ueber einen gemeinsamen Audio-Prozess ab, Windows kann sie daher nicht einzeln routen. Chromium kann aber pro Medienelement ein Geraet waehlen (setSinkId). - audio_routing.py (neu): Router-Skript (findet das Geraet ueber seinen Namen, kennt den Hardware-ID-Suffix von Chromium, behandelt dynamisch erzeugte Elemente, Zielwechsel, Zuruecksetzen und fehlende Geraete), Geraeteliste (QMediaDevices), Freigabe der Geraetenamen (Chromium blendet sie ohne Mikrofon-Berechtigung aus) - Freigabe nur solange ein Tab ein eigenes Geraet nutzt, nur fuer die beiden YouTube- Seiten, nur fuer die laufende Sitzung (Qt speichert sie nicht) - bei jedem Start und nach jedem Seitenaufbau neu erteilt, weil sie auf der YouTube-Startseite sonst nicht greift - browser: BrowserTab.set_audio_output (Skript pro Seite; ohne Auswahl wird die Seite gar nicht angefasst) - settings_tab: neue Gruppe, Hot-Plug-Aktualisierung, fehlendes Geraet bleibt als "nicht verfuegbar" gespeichert, Discord-Anzeige nennt das bearbeitete Feld - config: audio.youtube_output / audio.music_output (leer = Systemstandard) - README: Abschnitt inkl. Hinweis, dass Windows weiter einen Eintrag "Playtube" zeigt
This commit is contained in:
@@ -14,6 +14,8 @@ Erweiterung) mit:
|
||||
Feldname, nie der Inhalt. Das folgt der Option „Status anzeigen, wenn gerade nichts
|
||||
läuft“ (aus = auch kein Einstellungs-Status). Discord übernimmt Änderungen höchstens
|
||||
alle 15 Sekunden, die Anzeige hinkt dem Klicken also etwas hinterher.
|
||||
- **Audioausgabe pro Tab** – YouTube und YouTube Musik lassen sich in den Einstellungen
|
||||
auf verschiedene Ausgabegeräte legen (z.B. getrennte Sonar-Kanäle), siehe unten.
|
||||
- **System-Tray** – Fenster schliessen minimiert nur (Musik läuft weiter), Rechtsklick
|
||||
aufs Tray-Icon zum Beenden, Play/Pause/Skip direkt aus dem Menü.
|
||||
- **Eigener Name** – erscheint als "Playtube" im Taskmanager, Fenstertitel, Alt-Tab
|
||||
@@ -68,6 +70,33 @@ sie ändern oder eine eigene Anwendung nutzen willst:
|
||||
In `config.json` lassen sich zudem `update_interval_seconds` (Mindestabstand zwischen
|
||||
Updates) und `show_idle_presence` (Status anzeigen, wenn gerade nichts läuft) anpassen.
|
||||
|
||||
## Audioausgabe pro Tab (YouTube / YouTube Musik)
|
||||
|
||||
Im **Einstellungen-Tab** legst du unter „Audioausgabe“ getrennt fest, über welches
|
||||
Ausgabegerät der Ton von **YouTube** und von **YouTube Musik** läuft (Standard:
|
||||
Systemstandard). So kannst du z.B. YouTube auf „Sonar - Media“ und YouTube Musik auf
|
||||
„Sonar - Aux“ legen und beide getrennt regeln. Nach „Speichern“ gilt die Auswahl sofort,
|
||||
auch für bereits geöffnete Seiten (kein Neuladen nötig).
|
||||
|
||||
Wichtig zu wissen:
|
||||
|
||||
- **Windows zeigt weiterhin einen Eintrag „Playtube“.** Chromium (QtWebEngine) spielt den
|
||||
Ton beider Tabs über *einen* gemeinsamen Audio-Prozess ab, deshalb kann Windows (auch
|
||||
„App-Lautstärke und Geräteeinstellungen“) die Tabs nicht einzeln benennen oder routen.
|
||||
Getrennt wird stattdessen über das **Gerät** - in Sonar & Co. also über den gewählten
|
||||
Kanal/das gewählte Gerät.
|
||||
- **Freigabe der Gerätenamen:** Chromium blendet Gerätenamen aus, solange die Seite keine
|
||||
Mikrofon-Berechtigung hat. Damit die Seite das gewählte Gerät findet, erteilt Playtube
|
||||
YouTube/YouTube Musik diese Freigabe - nur, solange mindestens ein Tab ein eigenes Gerät
|
||||
nutzt, nur für diese beiden Seiten und nur für die laufende Sitzung (sie wird nicht
|
||||
gespeichert und bei jedem Start neu erteilt). Es wird nichts aufgenommen.
|
||||
- Ist das gewählte Gerät gerade nicht angeschlossen, bleibt die Auswahl (als „nicht
|
||||
verfügbar“) gespeichert und der Ton läuft solange über den Systemstandard.
|
||||
- Technik: [playtube/audio_routing.py](playtube/audio_routing.py) legt per
|
||||
`HTMLMediaElement.setSinkId` die Medienelemente der Seite auf das Gerät (Suche über den
|
||||
Gerätenamen). In der Konfiguration stehen die Namen unter `audio.youtube_output` und
|
||||
`audio.music_output` (leer = Systemstandard).
|
||||
|
||||
## App als eigenständige Playtube.exe packen
|
||||
|
||||
Für die volle Taskmanager-/Audiomixer-Markierung wird die App als eigene .exe gebaut
|
||||
|
||||
Reference in New Issue
Block a user