0 votos

Utilizar AppleScript para lanzar y gestionar Quicktime Player en segundo plano

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, porque hará lo que necesito, pero me estoy encontrando con un par de problemas.

En primer lugar, necesito que el reproductor QuickTime se inicie en segundo plano. La forma en que mi Applescript está funcionando ahora, está poniendo el reproductor en el primer plano, que luego requiere que los usuarios hagan clic de nuevo en mi aplicación Perl para seguir adelante.

En segundo lugar, me gustaría que la reproducción de un nuevo archivo de audio reutilizara la ventana existente de QuickTime Player, de modo que sólo haya un reproductor en marcha en todo momento. Así, si se está reproduciendo una canción y se elige reproducir otra, se detiene la canción que se está reproduciendo en la ventana y se 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

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

Se agradece cualquier ayuda.

1voto

Chariza Duyugan Puntos 16

¿Qué te parece esto? No es exactamente lo que quieres, pero consigue más o menos lo mismo.

Creo recordar que antes de OS X se podía activar una aplicación y evitar que fuera frontmost, pero parece que eso no es posible hoy en día (o yo me lo imaginaba).

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

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