# AppleScript : sélection de la sortie son



## Superian (4 Janvier 2016)

Bonjour,

J'ai récemment pris une borne airport express pour diffuser le son de mon Mac Mini vers ma chaîne HiFi, mais mon Mac Mini servant également de centre multimédia (merci les articles Un Mac Mini sous la TV!) je souhaite pouvoir changer facilement l'output du son. La méthode ALT+ clic sur l'icône de volume pour sélectionner l'output n'est pas très pratique et j'aurais préféré un raccourci clavier (qui n'existe pas aujourd'hui).

Je me suis donc rabattu sur un applescript (adapté de http://plasticmind.com/code/audio-output-toggle-applescript/) qui est censé sélectionner la sortie audio TV si la sortie Chaine HiFi est utilisée, et inversement. Ce script fonctionne très bien lorsque Préférences Système est lancé, mais ne fonctionne pas du tout lorsqu'il est fermé.

Le voici:


```
tell application "System Preferences"
    activate
    set current pane to pane "com.apple.preference.sound"
end tell
tell application "System Events"
    tell application process "System Preferences"
        tell tab group 1 of window "Son"
            click radio button "Sortie"
            if (selected of row 3 of table 1 of scroll area 1) then
                set selected of row 5 of table 1 of scroll area 1 to true
                set deviceselected to "Chaine Hifi"
            else
                set selected of row 3 of table 1 of scroll area 1 to true
                set deviceselected to "Philips FTV"
            end if
        end tell
    end tell
end tell
tell application "System Preferences" to quit
```

Je ne comprends pas très bien étant donné que d'après ce que je comprends du code je demande à Préférences Système de s'ouvrir et de se fermer en début / fin de code. Il ne devrait pas y avoir de problème à ce niveau là.

De plus, je ne m'y connais pas vraiment en applescript mais je trouve étrange qu'on désigne des éléments en français et non en anglais ("Son" en ligne 7, "Sortie" en ligne 8).

Bref, avez-vous une idée de ce que je peux modifier là dessus...? 

Merci!

Superian


----------



## Berthold (4 Janvier 2016)

"Son" et "Sortie" sont des éléments de tes fenêtres, respectivement une pref pane et un bouton… Heureusement que le script les appelle par leur nom, sinon il ne fonctionnerait pas !

Pour le reste de ton problème, je ne peux répondre là tout de suite, faut que je prenne un peu de temps. Peut-être le end tell de la ligne 4 qui devrait être placé à la fin ?


----------



## Superian (4 Janvier 2016)

Merci Berthold! Je vais essayer de revoir les end tell ce soir je te tiendrai au courant.

Sinon peut être que je suis allé cherché un peu trop loin et qu'il existe un moyen plus simple de définir un output audio par défaut par application...


----------



## les_innommables66 (4 Janvier 2016)

Bonjour,

Une idée :
Essaye d'ajouter une temporisation entre l'ouverture des préférences systèmes et l'appel à System Events 
Utilise la commande :
delay 3
Pour attendre 3 secondes

Cordialement,
Nicolas


----------



## Superian (5 Janvier 2016)

Hello Nicolas, effectivement ajouter delay 1 au script résout le problème.

Merci!
Francois


----------

