# Fermeture iTunes avec AppleScript



## IPuck (10 Août 2012)

Bonjour à tous,

Je suis nouveau sur le forum et total débutant avec Applescript. 

Je souhaite que mon iMac  - OS X 10.5.8  -  joue quelques notes personalisées à l'ouverture de ma session (je sais, c'est idiot mais bon...)

J'utilise le script suivant avec une application Automator qui s'ouvre automatiquement en début de session:


on run {input, parameters}
	tell application "iTunes"
		play track "569462"
	end tell
	return input
end run



Le problème est que le son est  joué mais que la fenêtre iTunes s'ouvre sur l'écran. 

Première question: est il possible de modifier le code pour que le son soit joué sans que la fenêtre iTunes soit visible?
Deuxième question: si l'ouverture de cette fenêtre ne peut pas être évitée, comment modifier le script pour qu'elle se ferme automatiquement à la fin du son? J'ai essayé d'insérer  "tell application "iTunes" to quit" mais alors le son n'est pas joué (d'accord, la fenêtre n'apparaît plus mais ce n'est pas vraiment le but recherché...)

Merci d'avance pour votre aide.


----------



## Larme (11 Août 2012)

Dans le _Terminal_, si tu as tapes _man afplay_, puis entrée pour validée, tu as quelque chose autre que_ No manual entry for afplay_ ?
Si oui, tu peux lancer un script shell avec _afplay ./cheminDeMaMusique/MaMusique.extension_ au démarrage de ta session.


----------



## IPuck (11 Août 2012)

Bonjour Larme,

Merci de cette réponse très rapide.

Après avoir tapé:
 man afplay
dans le terminal, j'obtiens:

-bash: manafplay: command not found

Ca ne me semble pas l'idéal...
Y a t-il autre chose à faire?

Bonne journée.


----------



## Larme (11 Août 2012)

Tu n'as pas séparé _man_ et _afplay_ d'un espace...


----------



## IPuck (11 Août 2012)

1) si je tape
manafplay
j'obtiens
-bash: manafplay: command not found


2) si je tape
man afplay
j'obtiens
AFPLAY(1)                 BSD General Commands Manual                AFPLAY(1)

NAME
     afplay -- Audio File Play

SYNOPSIS
     afplay [-h] audiofile

DESCRIPTION
     Audio File Play plays an audio file to the default audio output

OPTIONS
     -h       print help text

Darwin                         February 13, 2007                        Darwin
(END)


----------



## Larme (11 Août 2012)

C'est bon alors...


----------



## IPuck (11 Août 2012)

Oui, sûrement... mais comme je l'ai écrit dans mon premier post, je suis total débutant (voir même pire si ça existe) avec AppleScript. Tout ce que je connais c'est le basique de chez basique en VBA, souvenir de l' époque maudite où je n'avais pas encore utilisé un Mac.
Je vais essayer de m' en sortir avec cela et je te tiens au courant


----------



## IPuck (11 Août 2012)

Bon, alors j'ai pas mal cherché, mais ce n'est pas très productif et je patauge un maximum.

D'abord, le chemin de mon morceau (durée = 5 secondes) est: /Users/LOLO/Music/iTunes/iTunes Music/Music/Unknown Artist/Unknown Album/569462main_eagle_has_landed.mp3
(je le trouve par "obtenir des informations" grâce à un clic droit sur le morceau dans iTunes)

Si je tape dans l'éditeur de scripts:
do shell script "afplay./Users/LOLO/Music/iTunes/iTunes Music /Music/Unknown Artist/Unknown Album/569462main_eagle_has_landed.mp3"
la réponse est, si je clique sur l'icône exécuter:
Erreur dAppleScript sh: afplay./Users/LOLO/Music/iTunes/iTunes: No such file or directory

Si je rajoute & après.mp3 (j'ai vu que certains font ça, mais je ne sais absolument pas pourquoi..), je n' ai plus de message d'erreur, mais il ne se passe rien du tout, même si je l' enregistre sous forme d' application.

Et si je tape 
on run {input, parameters}
	tell application "Terminal"
		do shell script "afplay./Users/LOLO/Music/iTunes/iTunes Music /Music/Unknown Artist/Unknown Album/569462main_eagle_has_landed.mp3&"
	end tell
	return input
end run

 a) dans automator, il ne se passe rien, mais sans message d' erreur
 b) dans l'éditeur de script, j'ai Erreur dAppleScript (null)

Est ce que je peux avoir un peu d'aide pour m'en sortir?
Merci beaucoup


----------



## Larme (11 Août 2012)

Alors...
Le _&_, c'est pour avoir la main toujours sur le _Terminal_ et pouvoir ainsi continuer de taper des commandes...

Vire le « . » devant le _/Users_, car ton chemin n'est pas vraiment relatif (en bref, en fonction de là où tu es), et testes dans le _Terminal_.
Ah oui, je viens de trouver...
L'espace est conter comme la fin d'un argument/option. Du coup, mets le_ iTunes Music_ entre guillemet ("iTunes Music") ou un _\_ devant un espace.


----------



## IPuck (11 Août 2012)

Dans le terminal, ça donne ça:

imac-de-lolo:~ LOLO$ do shell script "afplay/Users/LOLO/Music/iTunes/iTunes Music /Music/Unknown Artist/Unknown Album/569462main_eagle_has_landed.mp3&"
-bash: syntax error near unexpected token `do'


----------



## Larme (11 Août 2012)

Tapes dans le _Terminal_ :
_afplay/Users/LOLO/Music/iTunes/"iTunes Music"/Music/"Unknown Artist"/Unknown Album/569462main_eagle_has_landed.mp3_

Attention, y'avait un espace en trop avant un_ /_...
Le _Shell_ est sensible aux espaces !


----------



## IPuck (11 Août 2012)

J'ai mis des guillemets devant iTunes 

imac-de-lolo:~ LOLO$ do shell script "afplay/Users/LOLO/Music/iTunes/"iTunes Music"/Music/Unknown Artist/Unknown Album/569462main_eagle_has_landed.mp3&"
-bash: syntax error near unexpected token `do'


et ailleurs
imac-de-lolo:~ LOLO$ do shell script "afplay/Users/LOLO/Music/iTunes/"iTunes Music"/Music/"Unknown Artist"/"Unknown Album"/569462main_eagle_has_landed.mp3&"
-bash: syntax error near unexpected token `do'

mais j' ai toujours le même message

---------- Nouveau message ajouté à 23h25 ---------- Le message précédent a été envoyé à 23h18 ----------

Là, je retombe sur le message: Unknown: No such file or directory

imac-de-lolo:~ LOLO$ afplay/Users/LOLO/Music/iTunes/"iTunes Music"/Music/"Unknown Artist"/Unknown Album/569462main_eagle_has_landed.mp3
-bash: afplay/Users/LOLO/Music/iTunes/iTunes Music/Music/Unknown Artist/Unknown: No such file or directory


----------



## Larme (11 Août 2012)

Met un espace après _afplay_...


----------



## IPuck (11 Août 2012)

Génial, ça marche dans le terminal ! 

Mais comment dois je faire pour que ce code se lance tout seul à l' ouverture de ma session ? ( comme avec Automator dans ma version initiale)


----------



## IPuck (12 Août 2012)

Ca y est, tout fonctionne, super...
Je propose la médaille d' or de la patience avec les débutants pour Larme
Merci encore...


----------

