Audioclips mit Timer aufnehmen?

Ich arbeite an einem Projekt, bei dem ich eine große Anzahl von 20-Sekunden-Audioclips aufnehmen muss (das Dateiformat ist meines Wissens unwichtig). Ich würde gerne in der Lage sein, dies zu tun, ohne eine Taste zu drücken, um jede Aufnahme zu stoppen – das heißt, ich hoffe, dass ich einen Timer verwenden kann, um die Aufnahme automatisch jedes Mal zu stoppen, wenn 20 Sekunden abgelaufen sind. Kann ich das in QuickTime verwalten? Wenn nicht, bin ich offen für alle Vorschläge der Community. Vielen Dank im Voraus.

Haben Sie versucht, dies mit AppleScript zu tun?
Ich hätte erwähnen sollen, dass ich ein neuer Mac-Benutzer bin ... habe mich noch nicht mit AppleScript befasst. Ist es in diesem Fall eine einfache Lösung?
Nun, "einfach" ist ein relativer Begriff, und da Sie neu bei OS X sind, kann es schwierig sein, aber wenn Sie den Prozess automatisieren möchten, ist dies möglich. Ich werde ein Beispiel als Antwort posten.

Antworten (1)

Dies ist ein Beispielskript, um zu versuchen, die von Ihnen geäußerten Bedürfnisse/Wünsche zu erfüllen. Wie codiert wird es 3 fünf Sekunden lange Aufnahmen auf Ihrem Desktop mit dem Namen "Recording_n.m4a" machen, wenn 'n' im Namen automatisch um 1 bis 3 erhöht wird, zB "Recording_1.m4a", "Recording_2.m4a" usw. zu was auch immer howMany ist eingestellt.

Öffnen Sie den Skripteditor , kopieren Sie den folgenden Code, fügen Sie ihn ein und klicken Sie auf die Schaltfläche "Compile".

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

Führen Sie das Skript ein oder zwei Mal aus, damit Sie sehen können, was es tut, und ändern Sie dann den Wert von howMany auf die Anzahl der Aufnahmen, die Sie machen möchten/müssen, ändern Sie den Wert der ersten Verzögerung von „6“ auf „ 21' für eine 20 Sekunden Aufnahme und den Wert der Sekundenverzögerung von '2' bis zB '5'. Den Wert der zweiten Verzögerung müssen Sie im Voraus bestimmen, indem Sie den Wert von howMany auf 1 oder 2 und den Wert der ersten Verzögerung von '6' auf '21' setzen, damit Sie eine 20-Sekunden-Aufnahme haben, um zu sehen, wie Der Export dauert viele Sekunden. Dieser Wert (der zweiten Verzögerung) kann höher sein als eigentlich nötig, wenn Sie z. B. zwischen den Aufnahmen eine kleine Pause einlegen möchten, um Luft zu holen und Ihre Gedanken für die nächste Aufnahme zu sammeln, obwohl zwischen jeder Aufnahme ein weiteres Steuerelement in Form eines Dialogfensters vorhanden ist.

Beachten Sie die Zeile display dialog "Click OK or press Enter to start next recording.", sie dient als Kontrollmechanismus, um die nächste Aufnahme zu starten oder aus der Wiederholungsschleife auszubrechen . Es gibt viele verschiedene Möglichkeiten, eine Aufgabe wie diese zu codieren und auszuführen, und dies soll Ihnen nur ein Startgerüst geben, auf dem Sie aufbauen können, wenn Sie AppleScript verwenden möchten, um eine automatisierte Aufgabe wie die von Ihnen erwähnte auszuführen.

In dieses Skript ist keine Fehlerprüfung geschrieben, dh wenn das Skript ein zweites Mal ausgeführt wird, wird es zB "Aufnahme_1.m4a", "Aufnahme_2.m4a" usw. überschreiben. Wenn Sie also aus der Wiederholungsschleife ausbrechen müssen Klicken Sie im Dialogfeld auf „Abbrechen“ oder im Skripteditor auf „Stop“, stellen Sie sicher, dass Sie recordingNumberdie richtige Nummer eingestellt haben, die die Nummer der letzten exportierten Datei + 1 ist. Außerdem close (every document whose name contains "Untitled") saving noschließt die erste Zeile jede Datei im QuickTime Player geöffnet, dessen Name „Ohne Titel“ enthält, ohne es zu speichern oder zum Speichern aufzufordern. Es kann auskommentiert werden, indem --Sie es voranstellen, wenn Sie dies wünschen, obwohl Sie aus der Wiederholung ausgebrochen sindSchleife müssen Sie vor dem Neustart manuell bereinigen, also möchten Sie sie vielleicht so lassen, wie sie ist. Nur wenn Sie dieses Skript verwenden, verwenden Sie den QuickTime Player nur für die anstehende Aufgabe, wenn Sie nicht verstehen, warum ich es so codiert habe.

Wow, danke. Das macht den Trick. Ich bin auch beeindruckt, wie menschenlesbar AppleScript ist. Ich frage mich nur ... wie würde ich einen bestimmten Ordner auf dem Desktop (z. B. "Aufnahmen") für die gespeicherten Aufnahmen angeben?
@hrbellemare, es kann auf verschiedene Arten hinzugefügt werden, hier ist eine Möglichkeit. In der set savePath toZeile ... fügen Sie & "Recordings:"vor ein, & "Recording_"damit die Zeile lautet: set savePath to (the path to the desktop folder as text) & "Recordings:" & "Recording_" & recordingNumber & ".m4a".
Danke. Eine Sache, die ich für alle Leser hinzufügen möchte, ist, dass der Ordner existieren muss, damit dies funktioniert - er wird nicht vom Skript erstellt.
@Harold Bellemare, gerne geschehen! Wie ich sagte, " Es gibt keine Fehlerprüfung, die in dieses Skript geschrieben ist ", und obwohl ich es im Zusammenhang mit dem Überschreiben von Dateien erwähnte, die es erstellt, war es auch allgemein anwendbar. Denken Sie daran, dass das von mir bereitgestellte Skript ein " Beispielskript " war und auch sagte: " Und dies soll Ihnen nur ein Startgerüst geben, auf dem Sie aufbauen können ", damit die richtige Fehlerbehandlung und zusätzliche Funktionen nach Belieben in das Skript eingebaut werden können. :)