3

Mac で画面を記録するための JavaScript 自動化スクリプトを作成しようとしています。の行で API が壊れていることがわかりましたdoc.close()。QuickTime がそこでハングアップし、最終的に Script Editor がタイムアウト エラーで失敗します。

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 に答える