Routing
Canvia la sortida d'audio (amb un AppleScript)
Hola!
En relació amb el projecte del mac com a media center, em vaig trobar amb una altra necessitat: poder canviar fàcilment el canal de sortida de l'àudio.
El mac mini el tinc connectat a una TV via HDMI, que és capaç d'enviar-hi l'àudio juntament amb el video, i a més tinc una connexió òptica (TOS Link) a un equip d'alta fidelitat (Home Video Cinema, com també en diuen, o AV Receiver). La idea és que per a determinades coses en tinc prou amb l'àudio de la TV, però quan volem escoltar música o visualitzar un DVD codificat amb Dolby Digital (amb més canals que 2+0), prefereixo escoltar-ho a través de la cadena musical. Per triar una o altra sortida, calia usar el ratolí per obrir les Preferències del sistema, seleccionar la pantalla del So, la segona pestanya (output) i finalment triar la sortida.
Tot això és massa complicat per a uns canvis que faig amb una certa freqüència, així que vaig decidir fer un ApplScript que permetés seleccionar el canal. Buscant a Altavista vaig trobar desseguida uns quants models d'scripts que no funcionaven del tot bé, ja que depenien molt del nom dels canals, especialment del predilecte. I de fet tot plegat tampoc era massa pràctic, així que vaig fer un una miqueta més complicat que canvia el canal d'àudio de forma cíclica. En realitat, vaig veure que encara podia tenir més sortides, un dia fent servir (amb el telèfon mòbil) uns auriculars Bluetooth, i vaig veure que també apareixien a la llista.
En definitiva, vaig decidir que l'script seleccionaria el segúent canal d'àudio disponible, i si estava seleccionat el darrer, aleshores saltaria al primer. Una selecció cíclica, en resum.
L'script és el següent, per si voleu modificar-lo i adaptar-lo a les vostres necessitats:
tell application "System Preferences"
activate
set current pane to pane "com.apple.preference.sound"
end tell
tell application "System Events"
get properties
tell process "System Preferences"
clickradio button "Output" of tab group 1 of window "Sound"
delay 2
set theRows to every row of table 1 of scroll area 1 of tab group 1 of window "sound"
set num to count of theRows
set n to 1
repeat with aRow in theRows
set n to (n + 1)
if (the selected of aRow) then
exit repeat
end if
end repeat
if (n = num + 1) then
set n to 1
end if
set the selected of (item n of theRows) to true
end tell
end tell
tell application "System Preferences" to quit
(Si, podria ser una mica més simple i més à la AppleScript, però després d'un parell de fracassos, vaig decidir usar el camí del dret.)
Després el guardem a la carpeta d'scripts pe a que estigui disponible des de qualsevol aplicació, o llestos! També podem guardar l'script com una aplicaició, i podem fer el canvi simplement clicant al damunt o assignar-la a un botó del nostre teclat..
Espero que us serveixi d'alguna cosa! Adéu!

