Uso de Apple Script para administrar la selección de salida de sonido

6

Soy nuevo aquí y tengo una aclaración adicional o necesito ayuda adicional para un problema de este tema: No consiga el grupo de pestañas 1 de la ventana "(El Capitán)

En mi panel de preferencias, además de Auriculares y salida digital, también tengo 2 monitores de Apple y me gustaría la opción de seleccionar uno de ellos como el de salida (a saber, el primero en la lista).

Básicamente necesito ayuda para ajustar su solución para poder seleccionar la tercera fila o el primer monitor como salida de sonido. O una forma de lograr esto sin saber cómo editar AppleScript para una configuración diferente.

    
pregunta JRTemp 25.11.2015 - 20:54

3 respuestas

4

Con un poco de experimentación en el guión de Arthur Hammer, descubrí que las líneas set deviceselected to "xyz" parecen ser solo comentarios visuales mientras que en Script Editor & No parece ser parte de la funcionalidad real.

El cambio real parece ser solo entre 2 líneas elegidas en el Panel de control; por lo tanto, si solo necesita cambiar entre 2 salidas, puede usar los números de las filas.

En este ejemplo, los he levantado para que sean variables, por lo que no es necesario profundizar en el script para cambiar las líneas requeridas ...

Como tiene más de 2 salidas, la primera vez que lo cambie no necesariamente irá desde / hacia el dispositivo correcto, sino después. Por ejemplo, si desea cambiar entre las salidas 3 y amp; 4, sin embargo, se seleccionó 2 actualmente, el primer cambio sería de "no 3" en lugar de "es 3" [espero que entienda esa explicación complicada]

(*
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: usar el script anterior con outputA = 3 & outputB = 4, ahora puedo cambiar entre Digital Out & TonePort UX2.

Una nota más: los números de línea no tienen que ser consecutivos, simplemente podría cambiar entre Altavoces Internos y amp; TonePort utilizando las líneas 1 y amp; 4.

    
respondido por el Tetsujin 04.12.2015 - 13:41
3

@Tetsujin - Gracias por esta solución. Funciona perfectamente. Lo estoy usando para cambiar entre mi audio incorporado (para cuando estoy programando para el trabajo) y mi tarjeta Universal Audio Apollo (para cuando estoy haciendo producción musical). Dado que el dispositivo UAudio también ofrece una opción de micrófono de entrada superior, agregué el obvio interruptor de entrada también después de la sección "Salida":

    click radio button "Input"
    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
    
respondido por el Grandpa Mojo 10.10.2016 - 22:55
1

No puedo adivinar un AppleScript general, pero me gusta y uso Automator para registrar los pasos necesarios.

Abre esa herramienta y crea un nuevo flujo de trabajo. Luego presione el botón de grabar. Luego puede grabar la secuencia utilizada para abrir las Preferencias del sistema, seleccionar el panel que desee, seleccionar el audio que desea y luego finalizar la grabación.

Por lo general, puede revisar las acciones y recortarlas o agregar retrasos si es necesario con Automator y no necesitará saber cómo programar las filas y los elementos en Applescript.     

respondido por el bmike 25.11.2015 - 22:48

Lea otras preguntas en las etiquetas