Applescript Pregunta - Adición de canciones a listas de reproducción
-
22-08-2019 - |
Pregunta
En serio, me da vergüenza incluso estar preguntando esto.
Tengo un AppleScript que se supone que construir una lista de reproducción de un montón de álbumes completos. Todo funciona bien, excepto por la adición de las vías de hecho a la lista de reproducción. Aquí está el código correspondiente:
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
El error que consigo es "iTunes consiguieron un error:. Se ha producido un tipo de descriptor desajuste"
randAlbums es una lista de nombres de álbumes únicos, y thePlaylist es una lista de reproducción que se ha creado anteriormente en el guión.
He estado golpeando mi cabeza contra esto por lo que se siente como una semana y no he sido capaz de entenderlo. Gracias de antemano por cualquier ayuda que puede ofrecer:)
Solución
Duplicar es el comando que desee. Prueba esto:
repeat with theAlbum in randAlbums
duplicate (tracks of library playlist 1 whose album is theAlbum) to thePlaylist
end repeat
Dentro de la add
interfaz de iTunes se utiliza para añadir una nueva pista a la biblioteca de iTunes utilizando una ruta de sistema de archivos, mientras que se utiliza para colocar una referencia a una pista existente en una lista de reproducción duplicate
.
Cuando se utiliza el comando add iTunes finalmente darán cuenta de que la pista ya es parte de la biblioteca y haga lo que quiera, pero no antes de que lee los metadatos del archivo, lo programa para la recuperación de la portada del álbum, etc. Todo esto equivale a una operación bastante lento por lo que si usted lo está utilizando dentro de un bucle para un gran número de pistas de iTunes se desacelerará a un rastreo.
Duplicar realiza una búsqueda de base de datos nativa y añade los resultados de la lista de reproducción a la vez por lo que es muy rápido.
Otros consejos
Trate de cambiar esa línea a:
add (get location of the_track) to playlist thePlaylist
o, si thePlaylist
ya es una referencia lista de reproducción (en lugar de sólo el nombre de cadena de una lista de reproducción):
add (get location of the_track) to thePlaylist
Applescript es muy raro ... pero de partida de los guiones aquí dougscripts.com
Parece que se utiliza duplicado no añadir cuando se añade a una lista de reproducción. Estoy mirando el Una canción de cada guión
Hmmm ... ¿qué tal?
add (a reference to the_track) to playlist thePlaylist
Probar:
copy the_track to end of playlist thePlaylist
en su lugar.