Question

Sérieusement, je suis gêné d'être même demander cela.

J'ai un Applescript qui est censé construire une playlist d'un tas d'albums entiers. Tout fonctionne très bien, sauf pour ajouter les pistes à fait la liste de lecture. Voici le code correspondant:

repeat with theAlbum in randAlbums
    set these_tracks to (tracks of library playlist 1 whose album is theAlbum)
    repeat with the_track in these_tracks
        add the_track to playlist thePlaylist  (* doesn't work *)
    end repeat
end repeat

L'erreur que je reçois est « iTunes a obtenu une erreur. Une incompatibilité de type descripteur est produit »

randAlbums est une liste de noms d'album uniques et thePlaylist est une liste de lecture est créée plus tôt dans le script.

J'ai frappais la tête contre cela pour ce qui ressemble à une semaine et je ne l'ai pas été en mesure de comprendre. Merci d'avance pour toute aide que vous pouvez offrir:)

Était-ce utile?

La solution

Dupliquer est la commande que vous voulez. Essayez ceci:

repeat with theAlbum in randAlbums
    duplicate (tracks of library playlist 1 whose album is theAlbum) to thePlaylist
end repeat

Dans le add d'interface iTunes permet d'ajouter une nouvelle piste à la bibliothèque iTunes en utilisant un chemin de système de fichiers, alors que duplicate est utilisé pour placer une référence à une piste existante dans une liste de lecture.

Lorsque la commande add est utilisé iTunes éventuellement comprendre que la piste est déjà partie de la bibliothèque et de faire ce que vous voulez, mais pas avant qu'il lit les métadonnées du fichier, les horaires il pour l'album de récupération d'art, etc. Tout cela équivaut à une opération assez lente, donc si vous l'utilisez dans une boucle pour un grand nombre de pistes iTunes ralentiront à un vide sanitaire.

Dupliquer effectue une recherche de base de données native et ajoute les résultats à la liste de lecture à la fois il est très rapide.

Autres conseils

Essayez de changer cette ligne à:

add (get location of the_track) to playlist thePlaylist

ou, si thePlaylist est déjà une référence de liste de lecture (au lieu de simplement le nom de chaîne d'une liste de lecture):

add (get location of the_track) to thePlaylist

AppleScript est vraiment bizarre ... mais les scripts ici dougscripts.com

On dirait qu'il utilise lors de l'ajout à une playlist en double et non ajouter . Je regarde le One Song De Chaque script

Hmmm ... que diriez-vous?

add (a reference to the_track) to playlist thePlaylist

Essayez:

copy the_track to end of playlist thePlaylist

au lieu.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top