質問

まじめな話、私もこれを尋ねることが恥ずかしいます。

私は、アルバム全体の束のプレイリストを構築することになっているAppleScriptを持っています。すべては実際にプレイリストに曲を追加することを除いて、正常に動作します。ここでは、関連するコードがあります:

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

私が手にエラーが「iTunesがエラーを得た。:ディスクリプタ型の不一致が発生しました」です。

randAlbumsユニークなアルバム名のリストである、とthePlaylistは、以前のスクリプトで作成されたプレイリストである。

私は週のように感じている何のためにこれに対する私の頭を叩いてきたと私はそれを把握することができていません。あなたが提供することができますどのような援助を事前に感謝:)

役に立ちましたか?

解決

重複はしたいコマンドです。これを試してください:

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

iTunesのインターフェースaddduplicateはプレイリスト内の既存のトラックへの参照を配置するために使用されている間、ファイルシステムパスを使用してiTunesライブラリに新しいトラックを追加するために使用されます。

addコマンドを使用すると、ファイルのメタデータを読み込む前に、

iTunesが最終的にトラックがすでにライブラリの一部であることを把握し、あなたがやりたいことではなくなり、アルバムアートの検索のためのスケジュールを、などこのすべてあなたは多数のトラックのためのループ内でそれを使用しているので、もしかなり遅い操作にのぼるiTunesがクロールに遅くなります。

の重複は、ネイティブデータベースルックアップを実行し、それは非常に高速であるので、一度にすべてのプレイリストに結果を追加します。

他のヒント

にその行を変更してみてください

add (get location of the_track) to playlist thePlaylist

または、thePlaylistは既に(代わりに、プレイリストのちょうど文字列名の)プレイリストの参照である場合:

add (get location of the_track) to thePlaylist

AppleScriptを本当に奇妙です...しかし、スクリプトをチェックアウトここdougscripts.com

彼はがプレイリストに追加するとき、の追加を複製していない使用していますように見えます。私はのスクリプトから 1曲で探しています>

うーん...方法について?

add (a reference to the_track) to playlist thePlaylist

試します:

copy the_track to end of playlist thePlaylist

の代わります。

scroll top