Usa AppleScript per avviare e gestire Quicktime Player in background

0

Ho un lettore audio basato su Perl che gira su OS X e devo aggiornare il modo in cui vengono riprodotti i file audio. Mi piacerebbe utilizzare AppleScript per controllare QuickTime Player, perché farà ciò di cui ho bisogno, ma sto incontrando un paio di problemi.

Per prima cosa, ho bisogno che il player QuickTime sia lanciato in background. Il modo in cui il mio dispositivo Applescript sta funzionando ora sta mettendo il lettore in primo piano, il che richiede che gli utenti facciano clic sulla mia app Perl per continuare.

In secondo luogo, mi piacerebbe giocare a un nuovo file audio riutilizzare la finestra di QuickTime Player esistente, in modo che ci sia un solo giocatore in un dato momento. Quindi, se una canzone è in riproduzione, e scelgono di suonare un'altra canzone, interrompe la canzone attualmente in riproduzione nella finestra e ne carica una nuova nella stessa finestra.

Ecco un esempio abbastanza rappresentativo di AppleScript con cui sto lavorando. Mi piacerebbe sapere se c'è un modo per raggiungere entrambi questi obiettivi.

set unixFile to "/Users/minter/mp3/ThomasDolby-SheBlindedMeWithScience.mp3"
set macFile to POSIX file unixFile
set fileRef to (macFile as alias)

tell application "QuickTime Player"
    open fileRef
    play the front document
end tell

delay 3

tell application "QuickTime Player"
   stop the front document
   close the front document
end tell

Quindi quando eseguo questo AppleScript, apre la finestra del lettore QT in primo piano. Se eseguo di nuovo lo script, crea una nuova finestra. Entrambi sono i problemi che sto cercando di risolvere.

Qualsiasi aiuto sarebbe apprezzato!

    
posta H. Wade Minter 21.03.2012 - 15:21
fonte

1 risposta

1

Che ne pensi di questo: non è esattamente quello che vuoi, ma raggiunge approssimativamente la stessa cosa.

Mi sembra di ricordare pre-OS X che potresti attivare un'app e impedirgli di essere in primo piano, ma ciò non sembra possibile in questi giorni (o l'ho immaginato).

to replaceFrontQTPlayerWithFile(aFile)

tell application "QuickTime Player"
    activate

    try
        set frontDoc to front document
        close front document
    on error err number errNum
        if errNum is -1719 then
            -- There is no open document
        else if errNum is -10000 then
            -- Front doc exists, but does not really...
        else
            log err
        end if
    end try

    open aFile
    play front document

    -- Hide QTP
    tell application "System Events"
        keystroke "h" using command down
    end tell

end tell
end replaceFrontQTPlayerWithFile


on run
    set unixFile to "/Users/diggory/Music/iTunes/iTunes Music/Music/Underworld/Oblivion With Bells/01 Crocodile.m4a"
    set macFile to POSIX file unixFile
    set fileRef to (macFile as alias)
    my replaceFrontQTPlayerWithFile(fileRef)
end run
    
risposta data 21.03.2012 - 17:23
fonte

Leggi altre domande sui tag