在计时器上录制音频片段?


3

我正在做一个项目,要求我录制大量20秒的音频剪辑(据我所知,文件格式并不重要)。我希望能够做到这一点,而无需按下按钮来停止每次录制—也就是说,我希望有一种方法可以使用计时器在每次20秒结束时自动停止录制。我可以在QuickTime中进行管理吗?如果没有,我愿意向社区提出任何建议。提前致谢。


您是否尝试过使用AppleScript执行此操作?
user3439894 2015年

我应该提到我是Mac的新用户...尚未研究AppleScript。在这种情况下,这是一个简单的解决方案吗?
哈罗德·贝勒马尔

好吧,“简单”是一个相对的术语,而对于OS X来说,这是一个新名词,可能会很困难,但是,如果您希望使过程自动化,那么可以做到这一点。我将发布示例作为答案。
user3439894

Answers:


3

这是一个示例脚本,用于尝试满足您所表达的需求/需求。按照编码,当名称中的“ n”会自动增加1到3,例如“ Recording_1.m4a”,“ Recording_2.m4a”等时,它将在您的桌面上以“ Recording_n.m4a”进行3个五秒的录音。如何设置为。

打开脚本编辑器,然后复制并粘贴下面的代码,然后按“编译”按钮。

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中打开的名称中包含“无标题”的字词,但没有保存它或提示保存。--如果您愿意的话,可以将其放在注释的前面,即使您不重复循环,您必须在重新启动之前手动进行清理,因此您可能希望将其保持原样。只是在使用此脚本时,如果您不明白我为什么用这种方式编写代码,则仅对您要执行的任务使用QuickTime Player。


哇谢谢。这可以解决问题。人们对AppleScript的可读性也给我留下了深刻的印象。我只是想知道...我将如何在桌面上为保存的录音指定一个文件夹(例如“录音”)?
哈罗德·贝莱马雷

@hrbellemare,可以添加其他方式,这是一种方式。在set savePath to...行中添加... & "Recordings:"& "Recording_"以便该行显示为set savePath to (the path to the desktop folder as text) & "Recordings:" & "Recording_" & recordingNumber & ".m4a"
user3439894

谢谢。对于任何阅读者,我要添加的一件事是该文件夹必须存在才能正常工作-脚本不会创建该文件夹。
哈罗德·贝勒马尔

@Harold Bellemare,不客气!正如我说的“ 没有按原样写入此脚本中的错误检查 ”,尽管我在覆盖文件的上下文中提到了它,但它创建的结果通常也适用。请记住,我提供的脚本是一个“ 示例脚本 ”,并且还说了“” ,这只是为了为您提供一个基于 “” 的初始框架,因此,可以根据需要在脚本中内置适当的错误处理和其他功能。:)
user3439894
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.