【发布时间】:2016-05-17 14:19:30
【问题描述】:
我正在使用this AppleScript,它打算在 OS X 上激活 QuickTime 并自动开始录制音频。
在Automator中运行调试时,脚本似乎突然停在"set lastLength to duration of x"这一行,并抛出错误:
“AppleEvent 处理程序失败”。
脚本可能有什么问题?
on run {input, parameters}
tell application "QuickTime Player"
activate
set x to new audio recording
start x
delay 1
set lastLength to duration of x
delay 1
set newLength to duration of x
try
repeat while lastLength is not equal to newLength
delay 1
set lastLength to newLength
set newLength to duration of x
end repeat
end try -- display alert name of document 1
set v to file of front document
set audioNotePath to "/Users/me/Dropbox/Inbox/- Voice Memos"
set thePath to POSIX path of audioNotePath
set dateVariable to do shell script "date '+%m.%d.%y'"
set timeVariable to do shell script "date +'%l.%M %p'"
tell x to activate
delay 1
tell application "System Events"
keystroke "w" using {command down}
delay 1
keystroke thePath
delay 1
keystroke return
delay 1
keystroke "AudioNote "
keystroke dateVariable
keystroke " "
keystroke timeVariable
delay 1
click pop up button "Format:" of group 1 of sheet 1 of window "Untitled" of application process "QuickTime Player" of application "System Events"
delay 1
key code 125
delay 1
keystroke return
delay 1
keystroke return
delay 1
open thePath
end tell
return input
end tell
end run
【问题讨论】:
-
我同意 Jon 关于空闲处理程序和保存命令的观点。最重要的是,请注意 QT 文档属性(当前时间、数据速率、持续时间...)在录制时不可用:这是您的脚本失败的地方
-
对不起,不小心删除了我的评论而不是编辑。正如 pbel 所说,我建议使用空闲处理程序和导出命令来保存文件,而不是运行自己的循环来确定持续时间或使用 UI 脚本进行保存。 pbell 也是正确的,您在录制时无法获取大多数 QT 文档属性,只有在您停止录制后才可以使用持续时间。
标签: macos applescript