7

真剣に、私はこれを尋ねることさえ恥ずかしい.

たくさんのアルバム全体のプレイリストを作成することになっている 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 はスクリプトで以前に作成されたプレイリストです。

私はこれに頭をぶつけて、一週間のように感じましたが、それを理解することができませんでした. あなたが提供できる支援を前もって感謝します:)

4

4 に答える 4

9

複製は、必要なコマンドです。これを試して:

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

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

add コマンドが使用されると、iTunes は最終的にトラックが既にライブラリの一部であることを認識し、必要な処理を行いますが、ファイルのメタデータを読み取ったり、アルバム アートの取得をスケジュールしたりする前ではありません。操作が非常に遅いため、多数のトラックのループ内で使用している場合、iTunes は遅くなります。

Duplicate はネイティブ データベース ルックアップを実行し、結果を一度にプレイリストに追加するため、非常に高速です。

于 2009-02-10T15:00:04.560 に答える
1

試す:

copy the_track to end of playlist thePlaylist

代わりは。

于 2009-02-14T00:59:23.920 に答える
0

Applescript は本当に奇妙です...しかし、ここ dougscripts.comでスクリプトをチェックしてください。

プレイリストに追加するときに、重複して追加しないように見えます。One Song From Eachスクリプトを見ています

うーん...どうですか?

add (a reference to the_track) to playlist thePlaylist
于 2009-02-10T09:51:52.403 に答える
0

その行を次のように変更してみてください。

add (get location of the_track) to playlist thePlaylist

または、thePlaylistすでにプレイリスト参照である場合 (単なるプレイリストの文字列名ではなく):

add (get location of the_track) to thePlaylist
于 2009-02-10T09:55:46.453 に答える