0 votes

Utiliser AppleScript pour lancer et gérer Quicktime Player en arrière-plan

J'ai un lecteur audio basé sur Perl qui fonctionne sous OS X, et j'ai besoin de mettre à jour la façon dont les fichiers audio sont lus. J'aimerais utiliser AppleScript pour contrôler le lecteur QuickTime, car il fera ce dont j'ai besoin, mais je me heurte à quelques problèmes.

Tout d'abord, j'ai besoin que le lecteur QuickTime soit lancé en arrière-plan. De la manière dont mon Applescript fonctionne actuellement, il place le lecteur au premier plan, ce qui oblige les utilisateurs à cliquer à nouveau sur mon application Perl pour continuer.

Deuxièmement, je voudrais que la lecture d'un nouveau fichier audio réutilise la fenêtre existante de QuickTime Player, de sorte qu'il n'y ait qu'un seul lecteur en cours à un moment donné. Ainsi, si une chanson est en cours de lecture et que l'on choisit d'en jouer une autre, la chanson en cours de lecture est arrêtée dans la fenêtre et une nouvelle chanson est chargée dans la même fenêtre.

Voici un échantillon assez représentatif de l'AppleScript avec lequel je travaille. J'aimerais savoir s'il existe un moyen d'atteindre ces deux objectifs.

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

Donc, quand je lance cet AppleScript, il fait apparaître la fenêtre du lecteur QT. Si je relance le script, il crée une nouvelle fenêtre. Ces deux problèmes sont ceux que j'essaie de résoudre.

Toute aide serait appréciée !

1voto

Diggory Points 708

Que dites-vous de ça ? Ce n'est pas exactement ce que tu veux, mais ça fait à peu près la même chose.

Je crois me souvenir qu'avant OS X, il était possible d'activer une application et de l'empêcher d'être au premier plan, mais cela ne semble plus possible aujourd'hui (ou alors j'ai 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

0 votes

Est-ce que ça a aidé ?

0 votes

Cela semble faire l'affaire dans l'éditeur script, mais pas dans le module Perl Applescript que j'utilise (mais c'est mon problème, pas le vôtre) - merci pour votre perspicacité.

0 votes

Une autre question : savez-vous comment utiliser cette même configuration pour arrêter la chanson en cours de lecture dans le lecteur QuickTime existant ?

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X