3

我正在尝试编写一个 JavaScript 自动化脚本来记录我的 Mac 上的屏幕。我发现 API 在doc.close(). QuickTime 只是挂在那里,最终我的脚本编辑器因超时错误而失败。

var QuickTime = Application("QuickTime Player");
var doc = QuickTime.newScreenRecording();
doc.start();
delay(2);
doc.close();

我最终必须使用以下命令从命令行退出 QuickTime:

$ killall QuickTime\ Player

然后我再次打开 QuickTime,发现我的视频在那里等着我。所以我决定在 close 方法中添加参数,现在我的脚本如下所示:

var QuickTime = Application("QuickTime Player");
var doc = QuickTime.newScreenRecording();
doc.start();
delay(2);
doc.close("yes",Path("/Users/myuser/Desktop/movie.mov"));
QuickTime.quit();

Result:
Error -2700: Script too silly to execute.
Error on line 5: Error: Named parameters must be passed as an object.

我没有看到足够的文档来完全理解这里何时被问到我。编写此脚本以捕获屏幕录制并将该文档/文件保存到我的桌面的正确方法是什么?

4

1 回答 1

0

我猜close希望它的每个参数都有一个名字。名称-参数对可以表示为具有以下语法的对象:

doc.close({saving: 'yes'}, {path: '/Users/myuser/Desktop/movie.mov'});

而不是这个:

doc.close("yes",Path("/Users/myuser/Desktop/movie.mov"));

请注意,我没有在 QuickTime 上进行现场直播。如果这不起作用或者我弄错了,请告诉我。

于 2018-01-04T16:06:13.763 回答