我正在尝试编写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.

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

最佳答案

我猜close期望其每个参数都带有一个名称。名称-参数对可以使用以下语法表示为对象:

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

代替这个:
doc.close("yes",Path("/Users/myuser/Desktop/movie.mov"));

N.B.我没有尝试使用QuickTime进行此操作。请告诉我这是否行不通或我弄错了。

10-08 12:23