Avec un peu d'expérimentation sur le script d'Arthur Hammer, j'ai découvert que les lignes set deviceselected to "xyz"
semblent n'être qu'un feedback visuel dans l'éditeur script et ne semblent pas faire partie de la fonctionnalité réelle.
La commutation réelle semble se faire entre 2 lignes choisies dans le panneau de contrôle ; ainsi, si vous avez juste besoin de commuter entre 2 sorties, vous pouvez simplement utiliser les numéros de ligne.
Dans cet exemple, je les ai élevés au rang de variables, de sorte que vous n'avez pas besoin de plonger dans le script pour modifier les lignes requises
Comme vous avez plus de 2 sorties, la première fois que vous commutez, il ne va pas nécessairement aller de/vers le bon appareil, mais il le fera par la suite.
Par exemple, si vous souhaitez commuter entre les sorties 3 et 4, alors que la sortie 2 est actuellement sélectionnée, le premier changement sera de "pas 3" par opposition à "est 3" [j'espère que vous comprenez cette explication alambiquée].
(*
Applescript to toggle between two sound outputs by Line number, ¬
as they appear in the Sound Control Panel. Based on code by ¬
Arthur Hammer http://apple.stackexchange.com/a/209434/85275
*)
set outputA to 3 --change this to the actual 'line number' of your first desired output
set outputB to 4 --change this to the actual 'line number' of your second desired output
--the rest of the script will use these vales as a switch
tell application "System Preferences"
activate
set current pane to pane "com.apple.preference.sound"
end tell
tell application "System Events"
tell application process "System Preferences"
repeat until exists tab group 1 of window "Sound"
end repeat
tell tab group 1 of window "Sound"
click radio button "Output"
if (selected of row outputA of table 1 of scroll area 1) then
set selected of row outputB of table 1 of scroll area 1 to true
else
set selected of row outputA of table 1 of scroll area 1 to true
end if
end tell
end tell
end tell
--tell application "System Preferences" to quit
--remove the comment '--' tag above to make the control panel quit afterwards, leave for testing.
Peut-être une petite clarification picturale - en utilisant le script ci-dessus avec outputA = 3 & outputB = 4, je peux maintenant commuter entre Digital Out & TonePort UX2.
Une autre remarque - les numéros de ligne ne doivent pas être consécutifs, je pourrais tout aussi bien passer des haut-parleurs internes au TonePort en utilisant les lignes 1 et 4.