Я не знал о afplay
, но на этом простой скрипт сделает это:
property soundsDirectory : POSIX file "/path/to/sounds/" as alias
tell application "System Events" to ¬
set soundFile to get POSIX path of (some item of soundsDirectory as alias)
do shell script "afplay " & quoted form of soundFile
Если у вас есть классический путь Mac в форме Macintosh HD:Users:you:Sounds:
, тогда вы можете использовать property soundsDirectory : alias "Macintosh HD:Users:you:Sounds:"
, но любой из них будет работать. Команда some item of <list>
просто возвращает случайный элемент из списка; вы должны пообещать AppleScript, что это будет псевдоним с as alias
, чтобы вы могли извлечь из него путь в стиле Unix. Команда quoted form of <text>
просто помещает текст в одинарные кавычки (при этом избегая одинарных кавычек) для использования в оболочке; afplay
просто играет.
Для требования ⌘↩ я бы использовал Spark , хотя есть несколько вариантов. Spark работает в фоновом режиме и, среди прочего, позволяет вам выполнять AppleScript на комбинации клавиш. Я не знаю способа, чтобы AppleScript всегда работал, но это достаточно быстро, чтобы запустить, что это не должно быть проблемой. Вместо этого у вас всегда будет работать Spark.