| |||||||
| Développement sur Mac XCode, Cocoa et Carbon, AppleScript ou Java ; le forum des développeurs Mac. |
| Publicité |
![]() |
| | Outils de la discussion | Modes d'affichage |
| | Applescript "genre dans itunes" : 2 "bugs" | #1 |
| Membre émérite Date d'inscription: 06/11/05 Localisation: Namur
Messages: 248
Disco: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() | Bonjour, j'ai écrit un petit applescript qui me pose encore deux petits soucis... Code: tell application "iTunes"
set mem_genre to "aa"
repeat while player state is not stopped
try
set genre_actuel to (get current track's genre)
set index_courant to (get index of current track)
set in_play to current playlist
if mem_genre is not genre_actuel then
do shell script "/usr/local/bin/growlnotify -a iTunes -m iTunesDMX! " & genre_actuel
set mem_genre to genre_actuel
else
set en_cours to ((current track's duration) - player position)
if (en_cours is less than 20) then
delay (en_cours - 8)
set genre_suivant to (genre of track (index_courant + 1) of in_play)
if genre_suivant is not genre_actuel then
do shell script "/usr/local/bin/growlnotify -a iTunes -m iTunesDMX " & genre_suivant
end if
set mem_genre to genre_suivant
end if
end if
delay 10
end try
end repeat
end tell L'action, pour le moment, c'est l'affichage d'un bezel growl (do shell script "/usr/local/bin/growlnotify..."). Par la suite ce sera une intervention sur une application tierce. Mon premier souci : quand je veux mettre fin à l'exécution du script autrement qu'en arrêtant la lecture sur iTunes; je ne peux le faire avec la fonction quitter et je suis obligé de passer par un forcer à quitter... Un remède docteur? Mon second, un peu moins génant : la ligne suivante prends le genre du morceau suivant dans la liste de lecture. Code: set genre_suivant to (genre of track (index_courant + 1) of in_play) Le Try englobant une bonne partie du code est là pour ne pas afficher les messages d'erreurs quand le morceau en lecture est le dernier de la liste (à ce moment là mon script ne m'est de toute façon plus utilité). infos qui peuvent être utiles: Mac OSX 10.6.3 - Itunes 9.1.1 - Editeur applescript 2.3 | |
|
--------------------
Citation:
![]() Dernière modification par two ; 23/05/2010 à 23h26. | ||
| | | |
| Publicité |
| |
| | #2 | |
| Anonyme
Messages: n/a
| Bonjour, La solution pour tes deux soucis: Code: property mem_genre : "" on run set mem_genre to "aa" end run on idle if application "iTunes" is running then tell application "iTunes" if player state is not stopped then try set genre_actuel to (get current track's genre) set index_courant to (get index of current track) set in_play to current playlist if mem_genre is not genre_actuel then my notification(genre_actuel) set mem_genre to genre_actuel else set en_cours to ((current track's duration) - player position) if (en_cours is less than 20) then delay (en_cours - 8) if running then set i to index_courant + 1 repeat tell track i of in_play to if enabled then --**vérifie si le morceau est coché **-- set genre_suivant to genre exit repeat end if set i to i + 1 end repeat else tell me to quit -- iTunes a quitté end if if genre_suivant is not genre_actuel then my notification(genre_suivant) set mem_genre to genre_suivant end if end if end try else tell me to quit -- le lecteur est stopped end if end tell else tell me to quit -- iTunes a quitté end if return 10 -- 10 secondes avant l'execution du prochain idle end idle on quit continue quit end quit on notification(t_genre) --- quoted form : si le genre contient un ' do shell script "/usr/local/bin/growlnotify -a iTunes -m iTunesDMX! " & quoted form of t_genre end notification | |
| ||
| | #3 | |
| Membre émérite Date d'inscription: 06/11/05 Localisation: Namur
Messages: 248
Disco: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() | Testé et adopté Merci Mac_Jac Juste une question supplémetaire pour pas mourir con: j'avais mis dans mon code Code: set mem_genre to "aa" Code: set mem_genre to "" Code: property mem_genre : ""
on run
set mem_genre to "aa"
end run
... Code: on run
set mem_genre to ""
...
end run | |
|
--------------------
Citation:
![]() | ||
| | | |
| | #4 | ||
| Anonyme
Messages: n/a
| Citation:
EX: set mem_genre to "aa" sans une déclaration comme global, à la première exécution du idle (erreur la variable mem_genre n'est pas défini.) Dans un événement "on idle", même chose pour les variables qui seront utilisées dans la prochaine exécution du 'on idle" Oui, on peut mettre ceci, mais en gardant la ligne property mem_genre : "" Si on ne réinitialise pas la variable mem_genre dans le "on run" le contenu de la variable sera celle lors de la fermeture de l'application. | ||
| |||
| | #5 | |
| Membre émérite Date d'inscription: 06/11/05 Localisation: Namur
Messages: 248
Disco: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() | ok, compris. Merci a toi | |
|
--------------------
Citation:
![]() | ||
| | | |
![]() |
| |
| Utilisateurs regardant la discussion actuelle : 1 (0 membre(s) et 1 invité(s)) | |
| Outils de la discussion | |
| Modes d'affichage | |
Discussions similaires | ||||
| Discussion | Auteur | Forum | Réponses | Dernier message |
| Xcode Tools 3.2: Pas d'onglet "AppleScript" dans "inspector" | Irving Bartowski | Développement sur Mac | 7 | 03/02/2010 16h53 |
| quand je tape "a" cela ecrit "a&", z "zé" et ainsi de suite. | ticomis | Périphériques et Accessoires | 2 | 24/11/2008 07h01 |
| Comment ouvrir une image genre "console" sur laquelle est inscrit "exec" en haut ? | Bobicheted | Mac OS X | 17 | 08/01/2007 15h51 |
| Action "Afficher/Masquer" de GoLive impossible dans navigateur "Safari" | vivie54 | Développement web | 0 | 12/10/2005 10h49 |
| Petit "soucis" avec "le meilleur des astuces" vol.1 de "A vos macs!" | Huvelin | À propos de MacGeneration | 0 | 27/12/2004 16h06 |