1 votos

¿Cómo le digo al reproductor Quicktime que inicie una nueva grabación de película con una Apple script?

He hecho un duplicado de la aplicación "Quicktime player" en mi Mac y lo he rebautizado como "Reaction" luego he puesto esta copia dentro de un applescript. Estoy intentando escribir un código que le diga al "Reaction" que inicie una "Nueva grabación de película" (que es una opción de grabación) y luego guarde la grabación dentro del applescript. (el nombre de la grabación es irrelevante)

Extra: Además, si alguien sabe cómo podría codificar una manera de añadir la grabación a un correo electrónico y enviarlo a la gente que sería genial.

De momento sé cómo abrir "Reaction" pero no cómo decirle a "Reaction" que inicie 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

2voto

qarma Puntos 71

Habiendo duplicado su Reproductor QuickTime aplicación y lo llamó Reacción Entiendo que ha creado un applet de AppleScript y ha colocado esta copia de Reacción.app dentro del Resources del applet AppleScript.

Porque es un duplicado de Reproductor QuickTime (que se puede programar), Reacción también se puede programar, y también se puede programar desde el AppleScript del applet (ubicado en Resources/scripts/main.scpt ).

Su main.scpt debería ser algo 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 sí mismo a application "Reaction" Lo cual está completamente bien.

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

Para enviarla como archivo adjunto mediante Correo :

set msgSubject to "My Reaction Recording"
set msgBody to "Hi. Please see the attached recording. \n"
set msgFrom to "your@email.com"
set msgTo to "friend@email.com"

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

La parte superior script y la parte inferior scriptpueden simplemente unirse para formar un script continuo. Es posible que necesites un retardo entre las dos porciones, pero en mi sistema no lo necesité.

Sin embargo, el retraso dentro del Correo es importante si desea enviar el correo electrónico (también debe descomentar el bloque send eliminando el comando -- (mantenerlo, lo que hice durante las pruebas, le permitirá previsualizar el correo electrónico y enviarlo manualmente).

0 votos

+1 ¡Gracias por tomarte el tiempo de publicar una respuesta mejor y más completa! :)

1 votos

Echa un vistazo a ruta de acceso (carpeta) y verás que en su lugar puedes utilizar path to movies folder y evitar que se produzcan innecesariamente path to home folder primero. Las líneas 2 y 3 se sustituyen por set fp to POSIX path of (path to movies folder) & "Reaction Recording.mov" Así, la línea 2 no es necesaria. Bonito script por lo demás. +1

-1voto

Monomeeth Puntos 139

Una forma rápida de conseguirlo sería enviar el atajo de teclado de tu script a la aplicación. Si no recuerdo mal, el atajo de teclado para iniciar la grabación de una nueva película en QuickTime Player es optioncommandN .

Por lo tanto, usted podría enviar esto a través de AppleScript añadiendo el siguiente código:

tell application "System Events"
    keystroke "n" using {option down, command down}
end tell

Obviamente, tendrás que hacer esto después de activar tu aplicación, o el atajo de teclado se aplicará a cualquier aplicación que esté activa en ese momento.

[ACTUALIZACIÓN]

Si desea también iniciar y detener la grabación, puede hacerlo pulsando la tecla space bar . Es decir, pulsando la tecla space bar iniciará la grabación, pulsándolo de nuevo se detendrá la grabación. Si necesita hacer esto dentro de su AppleScript, puede utilizar el código de la tecla AppleScript correspondiente (para el space bar son 49). Puede utilizar los códigos de las teclas con la siguiente sintaxis:

tell application "System Events"
  key code 49
end tell

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X