¿Cómo puedo activar sucesivamente un AppleScript muy rápidamente?

Fondo

Para ajustar el volumen fino, uso el siguiente AppleScript:

try do shell script "killall afplay" end try set currentVolume to output volume of (get volume settings) set volume output volume (currentVolume + 2) -- play volume changing sound at new volume do shell script "afplay /System/Library/LoginPlugins/BezelServices.loginPlugin/Contents/Resources/volume.aiff" 

Esto boostá el volumen en un 2% y reproducirá el nuevo volumen una vez como siempre.

  • Script de Apple para aplicar reglas en Mail.app
  • ¿Puede la window de descarga de popover de Safari hacerse más ancha?
  • ¿Hay alguna herramienta o enfoque de scripting para cambiar la disposition de las pantallas?
  • ¿Cómo abro Google Chrome en modo incógnito de manera pnetworkingeterminada?
  • AppleScript: ¿Cómo abrir un file en TextEdit, sin traer las otras windows de TextEdit al frente?
  • Aplicación de grabación de audio en el iPhone con control de button de hardware?
  • Problema

    Usar este script tiene desventajas:

    • Cuando disparo el guión rápidamente varias veces seguidas, no responde tan rápido como lo haría el cambio de volumen "normal".
    • Para cada ejecución, el sonido del volumen se reproduce en toda su longitud.

    Parece que mi problema se debe a una limitación de cómo se activan los scripts . Por ejemplo, cuando uso FastScript, no ejecutará el script nuevamente antes de que haya terminado. Lo mismo ocurre con Quicksilver.

    Sin embargo, cuando asigno el "script de menor volumen" a Quicksilver y el "script de volumen más alto" a FastScripts, puedo disparar ambos scripts muy rápido uno detrás del otro, así que: el script está bien. Creo que mi problema se debe a cómo se activan los scripts.

    Pregunta

    ¿Cómo puedo activar sucesivamente un script muy rápido?

  • AppleScript: ¿Es posible tener una "respuesta pnetworkingeterminada" no seleccionada en un cuadro de dialog de input?
  • Aplicación que cambia la configuration de networking, inicia aplicaciones, etc. al cambiar la connection de networking
  • Applescript - Recordatorios - Insoportablemente lento
  • ¿Cómo puedo averiguar si una aplicación instaló wavtap.kext como parte de su package?
  • Presentaciones magistrales y grabadas
  • ¿Qué herramienta es mejor para eliminar páginas de un PDF?
  • 2 Solutions collect form web for “¿Cómo puedo activar sucesivamente un AppleScript muy rápidamente?”

    Agregar > /dev/null 2>&1 & al final del command do shell script debería funcionar. Esto networkingirige el stdout y stderr del command do shell script a /dev/null y ejecuta el script de shell en segundo plano, lo que significa que AppleScript ya no necesita esperar a que el command devuelva stdout o stderr antes de que el script AppleScript pueda finalizar. Eso significa que termina y se puede ejecutar de nuevo mucho más rápido.

    Tampoco debería necesitar el manejador de bashs al principio. El siguiente script modificado debería funcionar:

     set currentVolume to output volume of (get volume settings) set volume output volume (currentVolume + 2) -- play volume changing sound at new volume do shell script "afplay /System/Library/LoginPlugins/BezelServices.loginPlugin/Contents/Resources/volume.aiff > /dev/null 2>&1 &" 

    Recibí este consejo de MacScripter (un recurso excelente para AppleScripting) en una publicación sobre la ejecución de varias instancias de un script de shell.

    ¿Qué le afplay agregar un ampersand al final de la línea de afplay para que la parte del guión se afplay en segundo plano? Me gusta esto

     afplay /System/Library/LoginPlugins/BezelServices.loginPlugin/Contents/Resources/volume.aiff & 
    Loving Apple Products like poisoning (iPhone, iPad, iMac, Macbook, iWatch).