Si queremos cambiar el dispositivo de entrada o salida en OS X tenemos 2 opciones: Ir directamente a Preferencias del Sistema > Sonido y cambiarlo en el panel o hacer ⌥ y click en el icono de sonido en la barra de menú superior. Pero es factible automatizar este proceso.
Si estamos haciendo un Screencast, inevitablemente veremos las ventanas o el menú desplegable si el cambio lo hacemos durante la grabación. Existe una solución a este problema mediante un AppleScript que podemos compilar en Automator y que podemos asociar luego a un atajo de teclado –o incluso un gesto via BTT– pudiendo hacer un script similar para cada dispositivo que queramos utilizar en el proceso.:
tell application "System Preferences"
reveal anchor "output" of pane id "com.apple.preference.sound"
end tell
tell application "System Events" to tell process "System Preferences"
tell table 1 of scroll area 1 of tab group 1 of window 1
select (row 1 where value of text field 1 is "aquí va el nombre del dispositivo deseado")
end tell
end tell
quit application "System Preferences"
Si tenéis alguna sugerencia, incluidla en los comentarios. Siempre sería posible incluir modificaciones para, por ejemplo, alternar entre dispositivos o hacer que el dispositivo sea el inmediatamente siguiente en nuestra lista de dispositivos. Este truco lo he desarrollado gracias a la fenomenal ayuda de jalonsov
Fuente: http://hints.macworld.com/article.php?story=20050614171126634
Gracias Carlos por publicarlo, y gracias jalonsov por tu ayuda.
En los foros tenéis el hilo completo por si queréis participar con nuevas posibilidades. En teoría, y siguiendo un esquema similar, podemos definir flujos de trabajo en segundo plano para muchas de las opciones incluidas en Preferencias de Sistema.
http://www.faq-mac.com/foros/consulta-cambiar-dispositivo-entrada-salida-automator/1089
Un saludo
Esto es para el audio de salida… además de cambiar la salida del audio, cambiaba la ecualización de iTunes.
Este es el código para el cambio de ecualización en iTunes.
if (button_pressed = «Headphones») then
tell application «iTunes» to set the current EQ preset to EQ preset «cascos»
else if (button_pressed = «Line Out») then
tell application «iTunes» to set the current EQ preset to EQ preset «altavoces»
end if
Efectivamente Rafa, el script del artículo modifica el dispositivo de salida (debería haber puesto en el script «aquí va el nombre del dispositivo de salida deseado»), pero con un ligero cambio para indicar la pestaña (tab) a la que afecta el proceso podríamos cambiar también la entrada. Por eso decía que a partir de este esquema podemos hacer muchas más cosas en el panel de Preferencias del Sistema.
Ahora estoy fuera, pero luego lo pruebo.
Y muchas gracias por tu aporte 😉
Hola de nuevo,
Para poder cambiar el dispositivo de entrada tan sólo hay que cambiar la segunda línea: donde pone «output» debemos incluir «input»
Así de fácil, el resto permanece igual:
tell application «System Preferences»
reveal anchor «input» of pane id «com.apple.preference.sound»
end tell
tell application «System Events» to tell process «System Preferences»
tell table 1 of scroll area 1 of tab group 1 of window 1
select (row 1 where value of text field 1 is «aquí va el nombre del dispositivo de entrada deseado»)
end tell
end tell
quit application «System Preferences»
Como decía en el anterior comentario, este esquema permite múltiples acciones en las Preferencias del Sistema.
Tal y como indica Lri en el hilo que comento en el artículo:
– pane id «» se usa para referirse a una de las opciones del panel de Preferencias
– reveal anchor «» para una determinada pestaña dentro de la opción anterior
Gracias a vosotros por incluirme,intentare seguir ayudando en lo que pueda.
Un saludo
¡Buenas jalonsov!
Aquí traigo una nueva modificación:
tell application «System Preferences»
reveal anchor «output» of pane id «com.apple.preference.sound»
end tell
tell application «System Events» to tell process «System Preferences»
tell table 1 of scroll area 1 of tab group 1 of window 1
if (selected of row 1 where value of text field 1 is «aquí va el nombre del dispositivo de salida 1») is true then
select (row 1 where value of text field 1 is «aquí va el nombre del dispositivo de salida 2»)
else
select (row 1 where value of text field 1 is «aquí va el nombre del dispositivo de salida 1»)
end if
end tell
end tell
quit application «System Preferences»
En este caso, partimos de 2 dispositivos de salida y el mismo atajo de teclado o gesto (con BTT) nos cambia la configuración entre dispositivos de manera cíclica. Muy util para no tener que andar recordando múltiples gestos si sólo queremos alternar entre 2 dispositivos.
Como antes, si queremos que el script sirva para dispositivos de entrada, en la segunda línea sustituiremos «output» por «input».
También es posible cambiar resoluciones de pantalla con:
– pane id «com.apple.preference.displays»
– anchor «displaysDisplayTab»
¿Alguien se anima? 😉