Con un poco de experimentación en el script descubrí que las líneas set deviceselected to "xyz"
parecen ser sólo una retroalimentación visual mientras que en script Editor y no parecen ser parte de la funcionalidad real.
La conmutación real parece ser sólo entre 2 líneas elegidas en el Panel de Control; así que, si sólo necesitas cambiar entre 2 salidas cualesquiera, entonces puedes usar simplemente los números de fila.
En este ejemplo las he sacado para que sean variables, así que no tienes que hurgar en el script para cambiar las líneas necesarias
Como tienes más de 2 salidas, la primera vez que cambies no irá necesariamente del/al dispositivo correcto, pero sí después.
Por ejemplo, si quisieras cambiar entre las salidas 3 y 4, aunque la 2 estuviera seleccionada en ese momento, el primer cambio sería de "no 3" a "es 3" [espero que entiendas esa enrevesada explicación].
(*
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.
Tal vez una pequeña aclaración pictórica - utilizando el anterior script con outputA = 3 & outputB = 4, ahora puedo cambiar entre Digital Out y TonePort UX2.
Una nota más - los números de línea no tienen que ser consecutivos, podría cambiar fácilmente entre los altavoces internos y TonePort utilizando las líneas 1 y 4.
0 votos
Bienvenido a Ask Different. He enlazado esto con la otra pregunta. ¿Podrías editar tu post para mostrar lo que tienes? Quizás añadiendo una imagen de la pantalla del panel de preferencias. Voy a añadir una respuesta que no requiere ningún tipo de aprendizaje de AppleScript si ese es el problema.
0 votos
Relacionado con esto: ¿Hay alguna manera de cambiar el dispositivo de salida de sonido a través de Applescript o shell?