当按cmd + enter时,applescript播放随机声音

时间:2010-11-30 23:20:24

标签: audio applescript

当您按cmd + enter时,我希望从文件夹中的一组声音片段播放随机声音。 AppleScript将始终运行,每当用户按下cmd +输入随机声音(mp3)时,无需打开iTunes即可播放,最好是在幕后。

谢谢!

2 个答案:

答案 0 :(得分:1)

我不知道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

如果您拥有Macintosh HD:Users:you:Sounds:形式的经典Mac路径,那么您可以改为使用property soundsDirectory : alias "Macintosh HD:Users:you:Sounds:",但其中任何一个都可以使用。 some item of <list>命令只返回列表中的随机项;你必须向AppleScript保证它将是as alias的别名,所以你可以从中获得unix风格的路径。 quoted form of <text>命令只是将文本放在单引号中(同时转义单引号)以便在shell中使用; afplay只是播放它。

对于⌘↩要求,我会使用Spark,尽管有很多选项。 Spark在后台运行,允许您在键盘快捷键上执行AppleScript等。我不知道AppleScript总是运行的任何方法,但这足以启动,这应该不是一个问题。你将总是运行Spark。

答案 1 :(得分:0)

下载名为FastScripts的应用,然后为cmd + enter设置一个新的热键,让它启动播放随机声音的AppleScript。

您可以使用这样的脚本使用QuickTime Player播放随机的.wav文件。编辑路径以指向声音文件的位置(文件夹)。调整延迟以便有足够的时间播放文件。

tell application "Finder"
   set soundFiles to every item of alias "Macintosh HD:sounds" --enter path to folder
   set fileCount to count of items in soundFiles
   set randomSound to random number from 1 to fileCount
   open item randomSound of soundFiles
end tell

tell application "QuickTime Player"
   set visible of every window to false
   play document 1
   delay 20 --adjust to allow for length of sound file
   quit
end tell