¿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.

  • ¿Es posible que un file .scpt de AppleScript conserve un ícono personalizado, incluso después de que se hayan hecho modificaciones al código?
  • ¿Cómo puedo conservar la configuration de volumen al conectar diferentes altavoces / auriculares?
  • Problema con espacios vacíos al ejecutar commands de shell en AppleScript
  • Grabación de video con dos canales de audio
  • Macro de una sola tecla para OS X
  • Los commands de script de Shell funcionan bien en Terminal pero no a través de AppleScript
  • 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?

  • ¿Hay alguna forma de convertir files de audio en Mac OS X o en la command-line sin usar iTunes?
  • AppleScript: ¿muestra alerta o se reinicia cuando la aplicación finaliza / se bloquea?
  • AppleScript: ¿Es posible tener una "respuesta pnetworkingeterminada" no seleccionada en un cuadro de dialog de input?
  • ¿Cómo encontrar la fuente de un sonido en un iPhone?
  • ¿Qué iPhones son compatibles con el códec apt-X para audio Bluetooth?
  • AppleScript: establece el resultado del script como variable
  • 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).