¿Es posible activar el efecto de sonido Papelera integrado a través de AppleScript?

Si uno mueve cualquier archivo a la carpeta Papelera en una Mac, de forma predeterminada, se reproduce un breve efecto de sonido a través de la salida de audio de la Mac (suponiendo que el audio del sistema no se haya silenciado).

Tengo un archivo .scpt donde realmente no se mueve nada a la carpeta Papelera, pero aún me gustaría que se reproduzca el efecto de sonido de la Papelera.

Entiendo que puedo descargar el efecto de sonido en mi computadora como un archivo de audio de Internet y escribir:

do shell script "afplay /Users/Me/Desktop/TrashSoundEffect.aiff"

Sin embargo, preferiría hacer referencia al efecto de sonido Papelera integrado . es posible?

Simplemente no me gusta la idea de tener que depender de un archivo adicional para que mi AppleScript funcione correctamente. El efecto de sonido incorporado es más confiable, ya que está garantizado que permanecerá en mi computadora indefinidamente.

Respuestas (1)

Que tal este:

do shell script "afplay '/System/Library/Components/CoreAudio.component/Contents/SharedSupport/SystemSounds/dock/drag to trash.aif'"

Actualizar:

Para abordar su comentario, esto se cubre en la Nota técnica TN2065: haga un script de shell en AppleScript en Otras preocupaciones donde dice:

"... ¿cómo hago para que el script de shell no espere hasta que se complete el comando?"

uso do shell script \"command &> file_path &\"_ do shell script regresará inmediatamente sin ningún resultado y su script AppleScript se ejecutará en paralelo con su script de shell. La salida del script de shell irá a file_path; si no le importa la salida, use /dev/null.

Ejemplo:

do shell script "afplay '/System/Library/Components/CoreAudio.component/Contents/SharedSupport/SystemSounds/dock/drag to trash.aif' &> /dev/null &"
Funciona muy bien. Me doy cuenta de que el guión está "en pausa" hasta que el efecto de sonido llega a su fin. ¿Sabe cómo hacer que el script pase a la siguiente línea tan pronto como se active su línea? En otras palabras, ¿es posible tener un without waiting for completionefecto de tipo para el afplaycomando?
tal vez un trybloque? [Solo una suposición, nunca lo he probado.]
Esfera de @rubik, he actualizado la respuesta para cubrir tu comentario.
@Tetsujin, Un try bloque de declaraciones no va a hacer nada con respecto a lo que pidió la esfera de rubíes en su comentario. Por favor borre su comentario, gracias.
@ user3439894 Con su respuesta actualizada, el script aún espera hasta que el archivo de audio se haya reproducido por completo antes de pasar a la siguiente línea de código. Lo confirmé cambiando el breve archivo de audio "arrastrar a la papelera.aif" por un archivo de audio que tiene una duración de 3 minutos, y el guión se detuvo durante 3 minutos.
Esfera de @rubik, lo siento, hubo un error tipográfico, no copié el &frente del >. He actualizado la respuesta.
A quienquiera que haya votado en contra de mi respuesta, por favor dé una razón legítima para hacerlo. Mi respuesta original respondió técnicamente correctamente a la pregunta original y la actualicé para manejar el comentario posterior al hecho del OP. Incluso cité de la nota técnica TN2065: haga un script de shell en AppleScript y, aunque mi comando de ejemplo actualizado inicialmente tenía un error tipográfico, que ahora está corregido, ¡no tiene una razón legítima para haber votado negativamente mi respuesta!
@ user3439894 Su respuesta actualizada ahora funciona según lo deseado. El script ejecuta la siguiente línea inmediatamente después de activar el archivo de audio. ¡Gracias!