Pergunta

Sério, eu estou envergonhado de ainda estar se perguntando isso.

Eu tenho um AppleScript que é suposto para construir uma lista de reprodução de um monte de álbuns inteiros. Tudo funciona bem, exceto para realmente adicionar as faixas à lista. Aqui está o código relevante:

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

O erro que eu vejo é "iTunes tenho um erro:. Um tipo de descritor de incompatibilidade ocorreu"

randAlbums é uma lista de nomes de álbuns únicas e thePlaylist é uma lista de reprodução que é criado no início do script.

Eu estive batendo a cabeça contra isso por que se sente como uma semana e eu não tenho sido capaz de descobrir isso. Agradecemos antecipadamente por qualquer ajuda que você pode oferecer:)

Foi útil?

Solução

Duplicate é o comando que você deseja. Tente isto:

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

Dentro do iTunes interface de add é usado para adicionar uma nova faixa para a biblioteca iTunes usando um caminho de sistema de arquivos, enquanto duplicate é usado para colocar uma referência a uma faixa existente em uma lista de reprodução.

Quando o comando add é usado iTunes acabará por descobrir que a pista já faz parte da biblioteca e fazer o que quiser, mas não antes de ele lê os metadados do arquivo, horários de TI para recuperação arte do álbum, etc. Tudo isso equivale a uma operação muito lenta, então se você estiver usando-o dentro de um loop para um grande número de faixas iTunes vai abrandar para um rastreamento.

Duplicate realiza uma pesquisa de banco de dados nativo e adiciona os resultados para a lista de reprodução de uma só vez, por isso é muito rápido.

Outras dicas

Tente alterar essa linha para:

add (get location of the_track) to playlist thePlaylist

ou, se thePlaylist é já uma referência playlist (em vez de apenas o nome de seqüência de uma lista de reprodução):

add (get location of the_track) to thePlaylist

Applescript é realmente estranho ... mas o checkout os scripts aqui dougscripts.com

Parece que ele usa duplicado e não Adicionar ao adicionar a uma playlist. Eu estou olhando para a Uma Canção de cada roteiro

Hmmm ... que tal?

add (a reference to the_track) to playlist thePlaylist

Tente:

copy the_track to end of playlist thePlaylist

em seu lugar.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top