Archivo de la etiqueta: afplay

Cómo reproducir un sonido en AppleScript utilizando comandos de Terminal

Con AppleScript, al igual que vimos en el artículo de Cómo reproducir un sonido al iniciar sesión en OSX podemos ejecutar comandos del terminal de forma sencilla para realizar operaciones.

En este artículo vamos a seguir con el ejemplo que seguimos con Automator y vamos a reproducir un sonido utilizando el comando de terminal afplay.

En AppleScript para ejecutar una orden en el terminal debemos utilizar la orden do shell script seguida de una cadena de texto entre dobles comillas (").

En AppleScript el ejemplo que hicimos con Automator quedaría así:


on run
do shell script "afplay /System/Library/Sounds/Blow.aiff"

A diferencia de Automator en este caso conseguimos el mismo efecto de forma más sencilla y con menos trabajo. Pero AppleScript no es siempre más sencillo de utilizar que Automator. Es más, desde Automator podemos ejecutar diversos scripts de AppleScript para realizar flujos de trabajo más complejos. Debemos decidir en cada caso qué opción es la más apropiada dependiendo qué función queremos crear.

Cómo reproducir un sonido al iniciar sesión en OSX

Aunque el sistema operativo OSX posee muchas características de accesibilidad y usabilidad hay que reconocer que el número de eventos del sistema asociados a un sonido es insuficiente.

Por suerte para sus usuarios existen herramientas y aplicaciones para solucionar total o parcialmente este problema.

Sonido al iniciar la sesión

Uno de los eventos de sonido más reconocidos en el sistema operativo Windows de Microsoft es el inicio de sesión. Es habitual escuchar una fanfarria notificando que la sesión del usuario se ha abierto.

Detectar cuando sucede este evento es sencillo. Podemos lanzar una aplicación cuando el sistema operativo arranque. Para ello las preferencias del sistema posee un apartado en la que se indican qué aplicaciones se arrancarán con la sesión del usuario.

Crear aplicaciones con Automator no es demasiado complicado.

Al abrir Automator y pulsar el botón de nuevo documento debemos seleccionar aplicación como tipo de documento .

Al abrirse la interfaz de Automator nos aparece una acción ya creada con el texto Una aplicación recibe archivos y carpetas como datos de entrada. Debemos ignorar esto ya que la entrada de datos en nuestra aplicación para reproducir un sonido será ignorada.

Reproduciendo un sonido desde la terminal de OSX

Para que nuestra aplicación creada con Automator reproduzca un sonido utilizaremos un comando de la terminal de OSX que tiene esta funcionalidad. Es el comando afplay. Este comando puede reproducir sonidos en diversos formatos como AIFF, CAF o WAV.

Para poder utilizar un comando de la terminal en Automator debemos incluir una acción de tipo Ejecutar el script Shell que se encuentra dentro de la categoría utilidades de la biblioteca de acciones de Automator. Debemos añadir esta acción a nuestro flujo de aplicación de Automator, para ello debemos arrastrar el elemento Ejecutar el script Shell a la zona de acciones del flujo de trabajo (donde aparece el texto Una aplicación recibe archivos y carpetas como datos de entrada). Los usuarios de VoiceOver deben usar las funciones de arrastrar y soltar que incorpora este lector de pantallas.

Una vez que tengamos la acción añadida a nuestro flujo de Automator debemos introducir nuestro código del script para reproducir un sonido. Esto lo haremos dentro del cuadro de edición en el que por defecto viene el código cat. Debemos sustituir todo ese código por el nuestro.

Para nuestro ejemplo vamos a reproducir un sonido propio del sistema operativo. Será el fichero Blow.aiff que está en la carpeta /System/Library/Sounds/. El código sería el siguiente:

afplay /System/Library/Sounds/Blow.aiff

Una vez hecho esto podemos probar que nuestra aplicación funciona, para ello sólo debemos ejecutar nuestro flujo de trabajo desde el propio Automator utilizando la opción que se encuentra en el menú Flujo de trabajo. Nos saldrá una alerta indicando que Automator requiere acceso a los parámetros del Finder, podemos ignorar la advertencia ya que cuando demos a guardar nuestra aplicación no habrá ningún problema.

Guardamos nuestra aplicación en la carpeta de aplicaciones con el nombre que decidamos.

Ejecutando nuestra aplicación al inicio de la sesión

Con nuestra aplicación lista en la carpeta de aplicaciones ahora debemos hacer que se ejecute cada vez que el sistema se inicie. Para ello debemos ir a las Preferencias del sistema y en el panel de usuarios y grupos debemos seleccionar nuestro usuario y pulsar la pestaña items de inicio. Nos aparecerá una tabla con las aplicaciones que se abren al iniciar la sesión del usuario seleccionado y un par de botones para añadir o eliminar items de inicio.

Una vez añadida nuestra aplicación podemos cerrar las preferencias del sistema y reiniciar nuestro equipo para probar que se reproduce el sonido correctamente.

Puedes descargar el ejemplo de Sonido de inicio en formato Zip para probar y seguir el ejemplo.