AppleScript zum Umschalten der Audio-Ausgabe von Mac OS X
06.03.11 10:00 Kategorisiert in: Mac OS X | AppleScript
Vielleicht kennt der ein oder andere das Problem: Aus irgendeinem Grund verstellt der Mac die Einstellungen zur Audio-Ausgabe. Bei mir macht das mein Mac mini, der via HDMI über ein Heimkino-System an einem Fernseher hängt.
Sobald man das Heimkino-System auf eine andere Eingangsquelle schaltet (Spielkonsole z.B.) erkennt Mac OS X, dass eigentlich kein Display und auch keine Audio-Ausgabe mehr vorhanden ist. Daraufhin wechselt Mac OS X die Auflösung von 1080p zu 1280 x 720 und die 8 Kanal Audio-Ausgabe zu 2 Kanal (und auf die interne Quäke).
Schaltet man nun die Eingangsquelle wieder zurück auf den Mac mini, schaltet dieser zwar wieder brav auf die 1080p, aber die Audio-Ausgabe beleibt bei heimkino-unfreundlichen 2 Kanälen. Beheben lässt sich das Problem nur im Audio-MIDI-Setup Programm.
Mit folgendem Apple-Script (GUI Scripting MUSS dafür aktiv sein) lässt sich die Audio-Ausgabe ohne viel Geklicke wieder auf 8-Kanal Audio umschalten. Ggf. müsst ihr das Skript ab der Stelle "-- GUI Scripting statements" auf euren Anwendungsfall abändern.
Voraussetzungen: Mac OS X 10.6, GUI Scripting aktiviert, getestet auf Mac OS X 10.6.8, läuft vermutlich nur so lange, bis Apple etwas an der GUI ändert
activate application "Audio MIDI Setup"
tell application "System Events"
get system attribute "sysv"
if result is greater than or equal to 4144 then -- Mac OS X 10.3.0
if UI elements enabled then
tell application process "Audio-MIDI-Setup"
-- GUI Scripting statements
get value of pop up button 2 of group 1 of tab group 1 of group 1 ¬
of window "Audiogeräte"
if result is not "8 Kanal - 16 Bit" then
click pop up button 2 of group 1 of tab group 1 of group 1 of window 1
delay 0.5
pick menu item "8 Kanal - 16 Bit" of menu 1 of pop up button 2 ¬
of group 1 of tab group 1 of group 1 of window 1
delay 0.5
end if
end tell
tell application "Audio MIDI Setup"
quit
end tell
else
beep
display dialog "GUI Scripting ist nicht aktiviert." with icon stop
if button returned of result is "OK" then
tell application "System Preferences"
activate
set current pane to pane "com.apple.preference.universalaccess"
end tell
end if
end if
else
beep
display dialog "Dieses Skript benötigt Mac OX X 10.3 oder neuer." with icon ¬
caution buttons {"Ende"} default button "Ende"
end if
end tell
Übrigens, "AppleScript, the Definitive Guide" von Matt Neuberg ist ein ziemlich gutes Buch zum Thema AppleScript.
Sobald man das Heimkino-System auf eine andere Eingangsquelle schaltet (Spielkonsole z.B.) erkennt Mac OS X, dass eigentlich kein Display und auch keine Audio-Ausgabe mehr vorhanden ist. Daraufhin wechselt Mac OS X die Auflösung von 1080p zu 1280 x 720 und die 8 Kanal Audio-Ausgabe zu 2 Kanal (und auf die interne Quäke).
Schaltet man nun die Eingangsquelle wieder zurück auf den Mac mini, schaltet dieser zwar wieder brav auf die 1080p, aber die Audio-Ausgabe beleibt bei heimkino-unfreundlichen 2 Kanälen. Beheben lässt sich das Problem nur im Audio-MIDI-Setup Programm.
Mit folgendem Apple-Script (GUI Scripting MUSS dafür aktiv sein) lässt sich die Audio-Ausgabe ohne viel Geklicke wieder auf 8-Kanal Audio umschalten. Ggf. müsst ihr das Skript ab der Stelle "-- GUI Scripting statements" auf euren Anwendungsfall abändern.
Voraussetzungen: Mac OS X 10.6, GUI Scripting aktiviert, getestet auf Mac OS X 10.6.8, läuft vermutlich nur so lange, bis Apple etwas an der GUI ändert
activate application "Audio MIDI Setup"
tell application "System Events"
get system attribute "sysv"
if result is greater than or equal to 4144 then -- Mac OS X 10.3.0
if UI elements enabled then
tell application process "Audio-MIDI-Setup"
-- GUI Scripting statements
get value of pop up button 2 of group 1 of tab group 1 of group 1 ¬
of window "Audiogeräte"
if result is not "8 Kanal - 16 Bit" then
click pop up button 2 of group 1 of tab group 1 of group 1 of window 1
delay 0.5
pick menu item "8 Kanal - 16 Bit" of menu 1 of pop up button 2 ¬
of group 1 of tab group 1 of group 1 of window 1
delay 0.5
end if
end tell
tell application "Audio MIDI Setup"
quit
end tell
else
beep
display dialog "GUI Scripting ist nicht aktiviert." with icon stop
if button returned of result is "OK" then
tell application "System Preferences"
activate
set current pane to pane "com.apple.preference.universalaccess"
end tell
end if
end if
else
beep
display dialog "Dieses Skript benötigt Mac OX X 10.3 oder neuer." with icon ¬
caution buttons {"Ende"} default button "Ende"
end if
end tell
Übrigens, "AppleScript, the Definitive Guide" von Matt Neuberg ist ein ziemlich gutes Buch zum Thema AppleScript.