J'ai un Applescript qui rapporte le nom de la chanson actuellement jouée, l'album, le numéro de la chanson et le nombre total de chansons sur l'album. Si l'album provient d'un seul CD ou si la chanson provient du CD 1 d'un album multi-CD, tout fonctionne et j'obtiens ce qui suit :
Chanson 2 sur 30
Cependant, si l'album provient d'un ensemble multi-CD, alors le numéro de la chanson est incorrect pour les chansons des CD 2, CD 3, etc. Voici un exemple : L'Elisir d'Amore a deux CD, et dans iTunes, il est saisi comme tel (par exemple, CD 1 de 2 et CD 2 de 2). Le script indique correctement qu'il y a 30 chansons (16 sur CD 1 et 14 sur CD 2). Lors de la lecture d'une chanson du CD 1, tout est exact. Lors de la lecture d'une chanson du CD 2, le numéro de la chanson recommence à 1, donc la toute dernière chanson apparaît comme suit :
Chanson 14 sur 30
car c'est la 14ème chanson sur le CD 2. Y a-t-il un moyen d'obtenir que le script affiche Chanson 30 sur 30 pour la dernière chanson sur le CD 2 sans un bricolage pour déterminer le nombre de CD, puis compter les chansons sur le CD 1 et puis ajouter au numéro de piste de la chanson sur le CD 2 ? Ce bricolage devient assez moche pour les albums s'étalant sur jusqu'à 14 CD.
Voici le morceau de code simplifié :
tell application "iTunes"
-- code pour vérifier s'il y a une chanson en cours
set z_album to album of current track as string
set z_num to count of (every track whose album is z_album)
set z_song to name of current track as string
set z_trk to track number of current track
log z_song & " (" & z_trk & " de " & z_num & ")"
end tell