¿Cómo hago para que el reproductor Quicktime inicie una nueva grabación de película con un script de Apple?

1

Hice un duplicado de la aplicación "Quicktime player" en mi Mac y le cambié el nombre a "Reaction", luego puse esta copia dentro de un applecript. Estoy tratando de escribir un código que le dice a la "Reacción" que comience una "Nueva grabación de película" (que es una opción de grabación) y luego guardar la grabación dentro de AppleScript. (el nombre de la grabación es irrelevante)

Extra: Además, si alguien sabe cómo podría codificar una forma de agregar la grabación a un correo electrónico y enviarla a las personas, sería genial.

En este momento, sé cómo abrir "Reacción" pero no cómo decir "Reacción" para iniciar una "Nueva grabación de película"

Hasta ahora estoy usando esto para abrir "Reacción"

  set appPath1 to path to resource "Reaction.app"
tell application "Finder"


open appPath1

end tell
    
pregunta John Smith 17.08.2018 - 06:53

1 respuesta

3

Habiendo duplicado su aplicación QuickTime Player y la llamó Reaction , entiendo que ha creado un applet de AppleScript y que ha colocado esta copia de Reaction.app dentro de la carpeta Resources del applet de AppleScript.

Debido a que es un duplicado de QuickTime Player (que es compatible con secuencias de comandos), Reaction también es compatible con secuencias de comandos, y también puede ejecutarse desde el AppleScript del applet (ubicado en Resources/scripts/main.scpt ).

Tu main.scpt debería verse así:

set A to path to resource "Reaction.app"

set home to POSIX path of (path to home folder)
set fp to home & "/Movies/Reaction Recording.mov"
set f to a reference to POSIX file fp

using terms from application "QuickTime Player"
    tell the application named A
        activate
        tell the (new movie recording)
            start
            delay 10
            pause
            save in f
            stop
            close
        end tell
    end tell
end using terms from

application "QuickTime Player" puede cambiar por su propia cuenta a application "Reaction" , lo que está completamente bien.

Este script crea una grabación de ~ 10 segundos, menos un par de segundos para dar cuenta de la inicialización del script y demás. Cambie delay 10 a cualquier valor que represente un tiempo de grabación razonable en segundos.

Para enviarlo como un archivo adjunto usando Correo :

set msgSubject to "My Reaction Recording"
set msgBody to "Hi. Please see the attached recording. \n"
set msgFrom to "[email protected]"
set msgTo to "[email protected]"

tell application "Mail"
    activate
    tell (make new outgoing message ¬
        with properties {visible:true ¬
        , subject:msgSubject ¬
        , content:msgBody ¬
        , sender:msgFrom})

        make new to recipient ¬
            at end of to recipients ¬
            with properties {address:msgTo}

        tell its content to make new attachment ¬
            at after the last paragraph ¬
            with properties {file name:f as alias}

        delay 2

        -- send
    end tell
end tell

El script superior y el script inferior pueden unirse para formar un solo script continuo. Es posible que necesite un retraso entre las dos partes, pero no necesité una en mi sistema.

Sin embargo, el retraso dentro del bloque Correo es importante si desea enviar el correo electrónico (también debe descomentar el comando send eliminando el -- ; durante la prueba, le permitirá obtener una vista previa del correo electrónico y enviarlo manualmente).

    
respondido por el CJK 17.08.2018 - 15:54

Lea otras preguntas en las etiquetas