Запись аудиоклипов по таймеру?

3

Я работаю над проектом, который требует от меня записи большого количества 20-секундных аудиоклипов (насколько я знаю, формат файла не важен). Я хотел бы иметь возможность сделать это без нажатия кнопки, чтобы остановить каждую запись, то есть я надеюсь, что есть способ использовать таймер для автоматической остановки записи каждый раз, когда истекает 20 секунд. Могу ли я справиться с этим в QuickTime? Если нет, я открыт для любых предложений сообщества. Заранее спасибо.

Гарольд Беллемар
источник
Вы пытались использовать AppleScript, чтобы сделать это?
user3439894
Я должен был упомянуть, что я новичок в Mac ... еще не углубился в AppleScript. Это простое решение, в этом случае?
Гарольд Bellemare
Что ж, «простой» - это относительный термин, и, будучи новичком в OS X, он может оказаться сложным, однако, если вы хотите автоматизировать процесс, то это можно сделать. Выложу и пример как ответ.
user3439894

Ответы:

3

Это пример сценария, чтобы попытаться соответствовать потребностям / пожеланиям, которые вы выразили. Как закодировано, он будет делать 3 пятисекундные записи на вашем рабочем столе с именем «Recording_n.m4a», когда «n» в имени будет автоматически увеличено с 1 до 3, например, «Recording_1.m4a», «Recording_2.m4a» и т. Д., На что угодно HowMany установлен в.

Откройте редактор скриптов, скопируйте и вставьте приведенный ниже код и нажмите кнопку «Скомпилировать».

set howMany to 3 -- The number of recordings to make.

set recordingNumber to 1 -- 'recordingNumber' is used to increment the recording number in the filename when exporting.

tell application "QuickTime Player"
    activate
    close (every document whose name contains "Untitled") saving no -- I set this just to have no other Untitled windows open when starting the recordings, especially if having broken out of the repeat loop.
    repeat howMany times
        set savePath to (the path to the desktop folder as text) & "Recording_" & recordingNumber & ".m4a"
        set recording to new audio recording
        start recording
        delay 6 -- Add an additional second to the wanted value, e.g. for 20 second recording set delay to 21.
        stop recording
        export document "Untitled" in file savePath using settings preset "Audio Only"
        delay 2 -- Set appropraite delay to allow export to complete.
        close (every document whose name contains "Untitled") saving no
        set recordingNumber to recordingNumber + 1 -- Increments recording number by one.
        -- Close "Export Progress" window.
        tell application "System Events" to click menu item "Hide Export Progress" of menu "Window" of menu bar 1 of process "QuickTime Player"
        display dialog "Click OK or press Enter to start next recording."
    end repeat
end tell

Запустите скрипт как раз или два, чтобы вы могли увидеть, что он делает, а затем вы можете изменить значение howMany на количество записей, которое вы хотите / нужно сделать, измените значение первой задержки с «6» на « 21 'для 20-секундной записи и значение второй задержки от' 2 'до, например,' 5 '. Значение второй задержки вам нужно определить заранее, установив значение howMany в 1 или 2 и значение первой задержки от «6» до «21», чтобы у вас была 20-секундная запись, чтобы увидеть, как много секунд, необходимых для экспорта. Это значение (второй задержки) может быть больше, чем необходимо, скажем, если вы хотите сделать небольшой перерыв между записями, чтобы перевести дух и собраться с мыслями для следующей записи, хотя между каждой записью есть еще один элемент управления в виде диалогового окна с сообщением.

Обратите внимание на строку display dialog "Click OK or press Enter to start next recording.", это как механизм управления, чтобы начать следующую запись или выйти из повторного цикла. Существует множество различных способов кодирования и выполнения таких задач, как эта, и это просто означает, что вы должны получить стартовую основу для построения, если вы хотите использовать AppleScript для выполнения таких автоматизированных задач, как вы упомянули.

Там нет проверки ошибок записываются в этот сценарий , как есть, то есть , если скрипт запускается второй раз , когда он будет перезаписывать , например , «Recording_1.m4a», «Recording_2.m4a» и т.д. Так что, если вам нужно выйти из повторного цикла по нажав «Отмена» в диалоговом окне сообщения или «Стоп» в редакторе сценариев, убедитесь, что вы установили recordingNumberсоответствующий номер, который будет номером, использованным в последнем экспортированном файле + 1. Кроме того, первая close (every document whose name contains "Untitled") saving noстрока закроет любой файл открывается в QuickTime Player, имя которого содержит «Untitled» без сохранения или запроса на сохранение. Это можно прокомментировать, разместив --перед ним, если вы хотите, хотя, если вы вышли из повтораПеред повторным запуском необходимо выполнить очистку вручную, поэтому вы можете оставить все как есть. Просто при использовании этого скрипта используйте QuickTime Player только для выполнения поставленной задачи, если вы не понимаете, почему я так его кодировал.

user3439894
источник
Вау, спасибо. Это делает трюк. Я также впечатлен тем, насколько читабелен AppleScript. Мне просто интересно ... как бы я указал определенную папку на рабочем столе (например, «Записи») для сохраненных записей?
Гарольд Беллемар
@hrbellemare, это можно добавить по-разному, вот один из способов. В set savePath toстроке ... добавить & "Recordings:"в передней части & "Recording_"так , что линия будет читать set savePath to (the path to the desktop folder as text) & "Recordings:" & "Recording_" & recordingNumber & ".m4a".
user3439894
Благодарю. Для всех, кто читает, я бы добавил, что для того, чтобы это работало, папка должна существовать - она ​​не будет создана скриптом.
Гарольд Беллемар
@ Гарольд Беллемар, добро пожаловать! Как я уже сказал, « в этом скрипте нет проверки ошибок, как есть », и, хотя я упомянул об этом в контексте перезаписи файлов, он создает, но в целом это применимо. Помните, что предоставленный мною сценарий был « образцом сценария » и также говорил « и это просто означает, что вы дадите вам начальную основу для построения », так что правильная обработка ошибок и дополнительные функциональные возможности, безусловно, могут быть встроены в сценарий по своему выбору. :)
user3439894