La acción Automator Start Capture no detecta la parada en Quicktime en OS X 10.8.2

Estoy intentando crear una aplicación Automator que iniciará Quicktime, creará una nueva captura de audio, iniciará esa captura y luego la guardará con un nombre de archivo específico después de hacer clic en el botón Detener en la ventana de captura. Aunque pude hacer esto en Lion sin ninguna dificultad, sigo teniendo problemas con la acción Iniciar captura en Mountain Lion. Aunque la casilla de verificación "Esperar a que se complete la captura" está marcada, la acción no parece detectar cuándo se hace clic en el botón Detener en Quicktime. ¡Cualquier solución, truco o solución alternativa que haga que esto funcione correctamente sería muy apreciada!

Respuestas (2)

Hay muchas cosas que no funcionan con respecto a la automatización de QuickTime en Mountain Lion. Esto es feo, pero parece ser una solución alternativa que tiene la virtud clave de que realmente funciona.

En su flujo de automatización, use la acción "Ejecutar AppleScript". Use esto como el guión:

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

Esto no es bonito, pero es una solución.

Casi todas las formas basadas en código para escribir el comando Guardar en QuickTime a través de AppleScript parecen estar rotas en Mountain Lion. No puedo acceder a la ruta del primer documento. no puedo exportar No puedo cerrar guardando. Todo falla en silencio o con un mensaje de error. Lo que parece funcionar es enviar las pulsaciones de teclas apropiadas para simular una exportación manual de archivos. Así que eso es lo que he hecho aquí.

Sospecho que desea que su archivo se guarde con un nombre diferente a "nombre de archivo específico" y tal vez en otro lugar que no sea su escritorio. Realice las sustituciones apropiadas en el guión para que eso suceda. El archivo estará allí en el disco; las acciones posteriores en su flujo de trabajo pueden aprovecharlo.

Tenga en cuenta que si su archivo ya existe, obtendrá un cuadro de diálogo de confirmación en el comando Guardar de QT, y el script no lo maneja automáticamente.

En lugar de usar las acciones de captura de inicio integradas, use una acción de AppleScript como disparador para iniciar la grabación (y espere a que se detenga), luego pase el archivo resultante a Automator para hacer lo que necesite con él.

Modifiqué ligeramente el guión de Daniel Lawson :

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

Eliminé las líneas de exportación 1 y cambié las referencias de una variable a simplemente front document(lo que evita algunos errores si la grabación es corta, con lo que me encontré durante mi prueba). Finalmente, agregué una declaración de devolución con la ruta POSIX del archivo resultante, que Automator puede tomar como entrada para acciones posteriores.

Póngalo en una acción de AppleScript y el archivo resultante se pasará correctamente a cualquier otra acción que tenga (como moverlo/cambiarle el nombre o volver a codificarlo).

notas

1 Las funciones de QuickTime Player savey exportAppleScript están rotas hasta el punto de ser inútiles. Mi teoría es que esto sucedió cuando 10.7 introdujo el guardado automático, ya que todas las grabaciones se guardan automáticamente en su ~/Moviesdirectorio y la configuración de calidad debe ajustarse manualmente de antemano (no están expuestas a AppleScript).

¿Has probado esto en ML? Me gusta mucho la idea, pero tengo el mismo bloqueo aquí que tuve con la primera versión de mi script.