Come faccio a dire al lettore Quicktime di iniziare una registrazione di un nuovo film con uno script Apple?

1

Ho fatto un duplicato dell'applicazione "Quicktime player" sul mio Mac e l'ho rinominato "Reaction", quindi ho inserito questa copia all'interno di un applescript. Sto provando a scrivere un codice che dice "Reaction" per avviare una "New Movie Recording" (che è un'opzione di registrazione), quindi salvare la registrazione all'interno del applescript. (il nome della registrazione è irrilevante)

Extra: anche se qualcuno sa come potrei quindi codificare un modo per aggiungere la registrazione a una e-mail e inviarla a persone che sarebbero grandiose.

Al momento so come aprire "Reaction" ma non come dire "Reaction" per avviare una "New Movie Recording"

Finora sto usando questo per aprire "Reaction"

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


open appPath1

end tell
    
posta John Smith 17.08.2018 - 06:53
fonte

1 risposta

3

Dopo aver duplicato la tua applicazione QuickTime Player e l'abbiamo nominata Reaction , ho appreso che hai creato un'applet AppleScript e ho inserito questa copia di Reaction.app nella cartella Resources dell'applet AppleScript.

Poiché è un duplicato di QuickTime Player (che è scriptable), Reaction è anche scriptabile e può anche essere copiato dall'applet di AppleScript (che si trova in Resources/scripts/main.scpt ).

Il tuo main.scpt dovrebbe assomigliare a questo:

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" può cambiare di propria iniziativa a application "Reaction" , che è completamente soddisfacente.

Questo script crea una registrazione di ~ 10 secondi, meno un paio di secondi per tenere conto dell'inizializzazione dello script e così via. Modifica delay 10 a qualsiasi valore rappresenta un tempo di registrazione ragionevole in secondi.

Per inviarlo come allegato utilizzando Mail :

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

Lo script principale e quello inferiore possono semplicemente unirsi per formare uno script continuo. Potrebbe essere necessario un ritardo tra le due parti, ma non ne ho richiesto uno sul mio sistema.

Tuttavia, il ritardo nel blocco Mail è importante se desideri inviare l'email (devi anche rimuovere il commento dal comando send rimuovendo -- ; fatto durante il test, ti consentirà di visualizzare in anteprima l'e-mail e inviarlo manualmente).

    
risposta data 17.08.2018 - 15:54
fonte

Leggi altre domande sui tag