Use AppleScript para iniciar y administrar Quicktime Player en segundo plano

0

Tengo un reproductor de audio basado en Perl que se ejecuta en OS X, y necesito actualizar cómo se reproducen los archivos de audio. Me gustaría usar AppleScript para controlar el QuickTime Player, ya que hará lo que necesito, pero tengo algunos problemas.

Primero, necesito que el reproductor QuickTime se inicie en segundo plano. La forma en que funciona Apple Applescript ahora es poner al jugador en primer plano, lo que luego requiere que los usuarios vuelvan a hacer clic en mi aplicación Perl para continuar.

Segundo, me gustaría que la reproducción de un nuevo archivo de audio reutilizara la ventana existente de QuickTime Player, de modo que solo haya un jugador en cada momento. Entonces, si una canción se está reproduciendo, y eligen reproducir otra canción, detiene la canción que se está reproduciendo actualmente en la ventana y carga una nueva en la misma ventana.

Aquí hay una muestra bastante representativa del AppleScript con el que estoy trabajando. Me encantaría saber si hay una manera de lograr ambos objetivos.

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

Entonces, cuando ejecuto este AppleScript, aparece la ventana del reproductor QT al frente. Si vuelvo a ejecutar el script, se crea una nueva ventana. Ambos son los problemas que estoy tratando de resolver.

Cualquier ayuda sería apreciada!

    
pregunta H. Wade Minter 21.03.2012 - 15:21

1 respuesta

1

¿Qué te parece esto? No es exactamente lo que quieres, pero logra casi lo mismo.

Me parece recordar que antes de OS X puedes activar una aplicación y evitar que sea la primera, pero parece que no es posible en estos días (o me lo imaginé).

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
    
respondido por el Diggory 21.03.2012 - 17:23

Lea otras preguntas en las etiquetas