Сценарий автоматизации для записи экрана с помощью QuickTime с использованием JavaScript

Я пытаюсь написать сценарий автоматизации 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.

Я не вижу достаточно документации, чтобы полностью понять, когда меня здесь спрашивают. Как правильно написать этот скрипт, который записывает запись экрана и сохраняет этот документ/файл на моем рабочем столе?


person user3792132    schedule 18.05.2015    source источник


Ответы (1)


Я предполагаю, что close ожидает, что каждый из его аргументов будет иметь имя. Пара имя-аргумент может быть выражена как объект с синтаксисом ниже:

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

вместо этого:

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

Н.Б. Я не пробовал это вживую с QuickTime. Пожалуйста, сообщите мне, если это не работает или я ошибаюсь.

person Philippe-André Lorin    schedule 04.01.2018