Die Automator-Start-Capture-Aktion erkennt das Stoppen in Quicktime in OS X 10.8.2 nicht

Ich versuche, eine Automator-Anwendung zu erstellen, die Quicktime startet, eine neue Audioaufnahme erstellt, diese Aufnahme startet und sie dann mit einem bestimmten Dateinamen speichert, nachdem im Aufnahmefenster auf die Stopp-Schaltfläche geklickt wurde. Obwohl ich dies in Lion problemlos tun konnte, habe ich immer wieder Probleme mit der Aktion Start Capture in Mountain Lion. Obwohl das Kontrollkästchen „Auf Abschluss der Aufnahme warten“ aktiviert ist, scheint die Aktion nicht zu erkennen, wenn in Quicktime auf die Stopp-Schaltfläche geklickt wird. Alle Lösungen, Tricks oder Problemumgehungen, mit denen dies ordnungsgemäß funktioniert, wären sehr willkommen!

Antworten (2)

Bei der Automatisierung von QuickTime unter Mountain Lion funktioniert vieles nicht. Das ist hässlich, aber es scheint eine Problemumgehung zu sein, die den Hauptvorteil hat, tatsächlich zu funktionieren.

Verwenden Sie in Ihrem Automator-Flow die Aktion „AppleScript ausführen“. Verwenden Sie dies als Skript:

tell application "QuickTime Player"
    activate
    set x to new audio recording
    tell x to start
    delay 1
    set lastLength to duration of x
    delay 1
    set newLength to duration of x
    try
        repeat while lastLength is not equal to newLength
            delay 1
            set lastLength to newLength
            set newLength to duration of x
        end repeat
    end try
    --  display alert name of document 1
    set v to file of front document
    set thePath to POSIX path of (path to desktop)
    tell x to activate
    delay 1
    tell application "System Events"
        keystroke "S" using {command down, shift down}
        delay 1
        keystroke thePath
        delay 1
        keystroke return
        delay 1
        keystroke "specific file name"
        keystroke return
    end tell
end tell

Das ist nicht schön, aber es ist ein Workaround.

Nahezu alle codebasierten Möglichkeiten, den Speicherbefehl in QuickTime über AppleScript zu skripten, scheinen in Mountain Lion defekt zu sein. Ich kann nicht auf den Pfad des vordersten Dokuments zugreifen. Ich kann nicht exportieren. Ich kann das Speichern nicht beenden. Alles schlägt entweder stillschweigend oder mit einer Fehlermeldung fehl. Was zu funktionieren scheint, ist, die entsprechenden Tastenanschläge zu senden, um einen manuellen Dateiexport zu simulieren. Das habe ich hier also getan.

Ich vermute, Sie möchten, dass Ihre Datei unter einem anderen Namen als "bestimmter Dateiname" und vielleicht an einem anderen Ort als Ihrem Desktop gespeichert wird. Nehmen Sie die entsprechenden Ersetzungen im Skript vor, damit dies geschehen kann. Die Datei befindet sich dann auf der Festplatte; Nachfolgende Aktionen in Ihrem Workflow können davon profitieren.

Beachten Sie, dass Sie, wenn Ihre Datei bereits existiert, einen Bestätigungsdialog im QT-Speicherbefehl erhalten und das Skript dies nicht automatisch handhabt.

Anstatt die integrierten Start-Capture-Aktionen zu verwenden, verwenden Sie eine AppleScript-Aktion als Auslöser, um die Aufnahme zu starten (und warten Sie, bis sie beendet wird), und übergeben Sie dann die resultierende Datei an Automator, um alles andere damit zu tun.

Ich habe das Skript von Daniel Lawson leicht modifiziert:

tell application "QuickTime Player"
    activate
    new audio recording
    tell front document to start
    delay 1
    set lastLength to duration of front document
    delay 1
    set newLength to duration of front document
    try
        repeat while lastLength is not equal to newLength
            delay 1
            set lastLength to newLength
            set newLength to duration of x
        end repeat
    end try
    set theFile to file of front document
    return POSIX path of theFile
end tell

Ich habe die Exportzeilen 1 entfernt und die Verweise von einer Variablen auf einfach geändert front document(was einige Fehler vermeidet, wenn die Aufzeichnung kurz ist, auf die ich während meiner Tests gestoßen bin). Schließlich habe ich eine return-Anweisung mit dem POSIX-Pfad der resultierenden Datei hinzugefügt, die Automator als Eingabe für nachfolgende Aktionen verwenden kann.

Fügen Sie dies in eine AppleScript-Aktion ein, und die resultierende Datei wird ordnungsgemäß an alle anderen Aktionen weitergegeben, die Sie haben (z. B. Verschieben / Umbenennen oder Neucodieren).

Anmerkungen

1 Die Funktionen von QuickTime Player saveund exportAppleScript sind so kaputt, dass sie unbrauchbar sind. Meine Theorie ist, dass dies geschah, als 10.7 das automatische Speichern einführte, da alle Aufnahmen automatisch in Ihrem Verzeichnis gespeichert werden ~/Moviesund die Qualitätseinstellungen vorher manuell angepasst werden müssen (sie werden AppleScript nicht ausgesetzt).

Hast du das in ML getestet? Ich mag die Idee sehr, aber ich bekomme hier den gleichen Absturz wie bei der ersten Version meines Skripts.