使用JavaScript使用QuickTime记录屏幕的自动化脚本

使用JavaScript使用QuickTime记录屏幕的自动化脚本,javascript,macos,automation,javascriptcore,osascript,Javascript,Macos,Automation,Javascriptcore,Osascript,我正在尝试编写一个JavaScript自动化脚本,用于在Mac上记录屏幕。我发现API在doc.close()这一行被破坏了。QuickTime只是挂在那里,最终我的脚本编辑器由于超时错误而失败 var QuickTime = Application("QuickTime Player"); var doc = QuickTime.newScreenRecording(); doc.start(); delay(2); doc.close(); 我最终不得不使用以下命令行退出QuickTime

我正在尝试编写一个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"));
注意,我没有试过用QuickTime直播。请告诉我这是不是行不通或者我是不是搞错了