Push-Nachrichten von MacTechNews.de
Würden Sie gerne aktuelle Nachrichten aus der Apple-Welt direkt über Push-Nachrichten erhalten?
Forum>Software>AppleScript zum Ändern der Tonausgabe in Ventura

AppleScript zum Ändern der Tonausgabe in Ventura

MLOS06.01.2312:29
Hallo,
ich habe kürzlich versucht, mittels eines AppleScripts die Tonausgabe am Mac auf den internen Lautsprecher des Notebooks zu legen. Unter Umständen kann es nämlich passieren, dass die automatisch wechselt und ich dann meine Sprachausgabe nicht mehr hören kann.
Das Skript soll die Systemeinstellungen öffnen, die Einstellung "Ton" auswählen und dann in der Tabelle die erste Zeile auswählen. Das Skript funktioniert bei mir aber leider nur, wenn die Systemeinstellungen geöffnet sind - aber warum?
Hier mal das Skript:
tell application "System Settings"
activate
tell application "System Events"
click menu item "Ton" of menu "Darstellung" of menu bar 1 of application process "Systemeinstellungen"
end tell
end tell
tell application "System Events"
select row 1 of table 1 of scroll area 1 of group 2 of scroll area 1 of group 1 of group 2 of splitter group 1 of group 1 of window "Ton" of application process "Systemeinstellungen"
end tell
Nach dem ersten Ausführen, wenn die Systemeinstellungen nicht laufen, erhalte ich immer den folgenden Fehler:
error "„System Events“ hat einen Fehler erhalten: „window \"Ton\" of application process \"Systemeinstellungen\"“ kann nicht gelesen werden." number -1728 from window "Ton" of application process "Systemeinstellungen"
Beim zweiten Ausführen, wenn die Systemeinstellungen geöffnet sind, läuft es und der Dialog "Toneinstellung bestätigen" öffnet sich (setzt voraus, dass zuvor ein anderes Ausgabeziel ausgewählt wurde, z.B. in meinem Fall ein AirPlay-Speaker). Leider schaffe ich es mit set uiElems to entire contents auch nicht, die Element-Hierarchie des Dialogs "Toneinstellung bestätigen" abzugreifen, um das Element "Bestätigen" zu klicken. Seit Ventura sind die Systemeinstellungen (wahrscheinlich durch SwiftUI) dermaßen verschachtelt in der Element-Hierarchie, dass click button 1 o.ä. leider nicht funktioniert, weil das zu irgendwelchen Groups oder Splitter groups gehört.
Vielen Dank schon einmal im Voraus für Eure Hilfe.
0

Kommentare

MikeMuc06.01.2312:45
MLOS
UI Scripting sollte immer nur der „letzte Ausweg“ sein wenn gar nichts anderes geht. Und selbst dann ist das nicht immer zuverlässig, da kann einem jedes Update vom OS dazwischen funken.
Ich würde daher versuchen, dem System das direkt mitzuteilen, die Ausgabe zu ändern. Wie genau und ob es wirklich „direkter“ geht, sollte sich sich durch eine kurze Internetrecherche rausfinden lassen.
0
X-Jo06.01.2313:09
Systemeinstellungen Kontrollzentrum Ton Immer in Menüleiste anzeigen

0
flurgesperrt06.01.2313:47
osascript -e 'tell application "System Settings" to activate' -e 'tell application "System Events" to click menu item "Ton" of menu "Darstellung" of menu bar 1 of application process "Systemeinstellungen"' -e 'tell application "System Events" to select row 1 of table 1 of scroll area 1 of group 2 of scroll area 1 of group 1 of group 2 of splitter group 1 of group 1 of window "Ton" of application process "Systemeinstellungen"'
0
MLOS07.01.2313:42
Mit osascript funktioniert es leider nicht. Dort erhalte ich stets den Fehler -1719. Dazu öffnen sich nur die Systemeinstellungen, Ton wird gar nicht ausgewählt.
0
marm07.01.2313:52
Du könntest es mit Bunch probieren. Bunch stellt per Skript Arbeitsumgebungen zusammen inkl. Audio. Hier der Link zur Audio-Konfiguration
Dann gibt es noch das Programm Ears , um Audio-Einstellungen zu ändern. Ears funkioniert auch mit Kommandozeile und Apple Script.

So sieht ein ganzes Bunch-Skript aus:
---
Title: Mac-Mikrofon und AirPods
only opens: true
---

(audio output AirPodsPro)
(audio output volume 50)
(audio input Macbook)
(notify Audio Mac in und AirPods out)
0
MLOS08.01.2308:59
Das mit Bunch klingt interessant. Lassen sich die Bunches auch mit einem Hotkey auslösen?
0
marm08.01.2309:53
MLOS
Das mit Bunch klingt interessant. Lassen sich die Bunches auch mit einem Hotkey auslösen?
Ja, dazu wird in das Frontmatter
shortcut: @~^a
für den Hotkey "ctrl shift alt a" eingesetzt.

Du kannst mit einem Bunch bestimmte Programme wie Apple Musik und Audio Hijack starten oder Dokumente laden. In dem Bunch definiert Du weitere Einstellungen, die dann gelten sollen wie die obigen Audio-Einstellungen oder das Laden von Skripten. Wird der Bunch beendet, werden auch die Programme geschlossen.
0
marm08.01.2310:12
marm
dazu wird in das Frontmatter ... für den Hotkey ... eingesetzt.
Hier noch der Link dazu in der Dokumentation:
0
MLOS08.01.2310:19
Wenn ich es richtig verstehe, muss ich immer zuerst den Hotkey für das Bunch-Menü drücken, danach den für den Bunch selbst. Ein systemweiter Shortcut ist da nicht möglich, um direkt den Bunch zu starten?
0
marm08.01.2310:20
MLOS
Wenn ich es richtig verstehe, muss ich immer zuerst den Hotkey für das Bunch-Menü drücken, danach den für den Bunch selbst. Ein systemweiter Shortcut ist da nicht möglich, um direkt den Bunch zu starten?
Mein Beispiel ist ein systemweiter Shortcut. Der muss im Frontmatter, also im Header vom Skript, definiert werden. Ansonsten gibt es einen Shortcut nur bei Aufruf des Bunch-Menüs.
0
MLOS08.01.2310:24
In dem Doc, das du verlinkt hattest, steht: Bunch has full keyboard control. Assign a Hotkey key in preferences to open the Bunch menu, and then use keyboard shortcuts to open your Bunches.
Daher dachte ich, ich müsste zwei Shortcuts verwenden. Zuerst den für das Bunch-Menü, dann den für den Bunch selbst.
Edit: Ich habe jetzt einen Bunch erstellt, als Shortcut Option+a im Frontmatter (also ~a) eingetragen. Es funktioniert leider nicht.
0
marm08.01.2310:41
Ja, Du hast recht. Der Shortcut ist nicht global, sondern erst nach Aufruf des Bunch-Menü. Ich musste gerade erstmal prüfen, ob das an meinen mangelnden Freigaben lag.
Da Du Apple Script geübt bist, kannst du einen Bunch per Apple Script aufrufen (ist ein Einzeiler) oder per Kurzbefehle und dafür einen globalen Hotkey setzen.
tell application "Bunch" to open bunch "Comms"
Sorry, manches sollte man erst ausprobieren. Aber der Umweg ist nicht weit.
0
MLOS08.01.2311:02
Super, das funktioniert wunderbar! Vielen Dank für den wertvollen Tipp. Kannte Bunch noch gar nicht, werde mich damit wohl noch intensiver beschäftigen. Das scheint ja ein großartiges Werkzeug zu sein.
0
Nebula
Nebula08.01.2311:41
Falls jemand das Problem hat, dass sich die Balance etwa beim Anstöpseln des Docks verstellt: hier hilft Balance Lock
„»Wir werden alle sterben« – Albert Einstein“
0
marm08.01.2311:44
MLOS
Das scheint ja ein großartiges Werkzeug zu sein.
Definitiv. Bunch hat bei mir einen sicheren Platz in der Menüleiste. Der Entwickler, Brett Terpstra, hat weitere nützliche Werkzeuge, einen Blog und noch Zeit auf Mails zu antworten.
0
piik
piik08.01.2314:16
Danke für den Thread.
Er hat mich motiviert, einen Bug von Ventura mittels Skript für mich vorläufig zu fixen.
Mich nervt es, wenn mein über BT angebundener Verstärker nicht wie in MacOS 12
automatisch verbunden wird. Ich musste das nach jedem Start von hand machen.
Meine Lösung war:
Mit dem Automator die Klicks aufzuzeichnen
(oben in der Menüleiste das BT-Memü zu öffnen und auf den Eintrag des gewünschten Devices klicken, dann nach ungewolltem aber dank Bug immer sich von selbst öffnende App Musik, die gerne ihr erstes Lied abspielen will, gleich wieder zu schließen).
Die Aufzeichnung habe ich per C&P in den Skriteditor kopiert und das Skript als Anmeldeobjekt ablaufen lassen. Es funktioniert und schon nervt mich Ventura etwas weniger.
0
piik
piik11.01.2319:47
Mittlerweile habe ich das Script wieder gelöscht.
Die Sache ist doch zu unzuverlässig.
Muss ich statt über Bluetooth doch über das Klinkenkabel gehen...
0

Kommentieren

Diese Diskussion ist bereits mehr als 3 Monate alt und kann daher nicht mehr kommentiert werden.