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:)

¿Fue útil?

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.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top