Con una piccola sperimentazione sulla sceneggiatura di Arthur Hammer ho scoperto che le righe set deviceselected to "xyz"
sembrano essere solo feedback visivi mentre in Script Editor & non sembra essere parte della funzionalità effettiva.
La commutazione effettiva sembra essere solo tra 2 linee selezionate nel Pannello di controllo; quindi, se hai solo bisogno di passare tra due uscite, puoi semplicemente usare i numeri di riga.
In questo esempio li ho estrapolati per essere variabili, quindi non è necessario approfondire lo script per modificare le linee richieste ...
Dato che hai più di 2 uscite, la prima volta che la cambierai non andrà necessariamente da / verso il dispositivo corretto, ma dopodiché.
Ad esempio, se si desidera passare tra le uscite 3 e amp; 4, ancora 2 era attualmente selezionato, il primo cambiamento sarebbe da "non 3" in contrapposizione a "è 3" [spero tu capisca quella spiegazione contorta]
(*
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.
Forse un piccolo chiarimento pittorico - usando lo script precedente con outputA = 3 & outputB = 4, ora posso passare da Digital Out & TonePort UX2.
Un'altra nota: i numeri di riga non devono essere consecutivi, potrei facilmente passare da Altoparlanti interni a ampli; TonePort usando le linee 1 & 4.