严重的是,我很尴尬,甚至会问此。

我有一个应该建立一堆整个专辑的播放列表一个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界面add用于一个新的轨迹添加到使用一个文件系统路径的iTunes音乐库,而duplicate用于放置在播放列表中,以现有的轨道的基准。

在add命令使用iTunes将最终弄清楚,赛道已经是库的一部分,做你想做的,但不能读取文件的元数据,安排其专辑封面检索等所有这一切之前,相当于一个相当缓慢的操作,所以如果你使用它的循环内进行大量曲目iTunes会慢如蜗牛。

重复执行的本机数据库查找和一次全部添加的结果到播放列表中,因此是非常快的。

其他提示

尝试改变该行:

add (get location of the_track) to playlist thePlaylist

,或者,如果是thePlaylist已经播放列表参考(而不是仅仅一个播放列表的字符串名称):

add (get location of the_track) to thePlaylist

AppleScript的真的很怪......但检出脚本这里dougscripts.com

看起来他使用的重复的而不是添加的添加到播放列表时。我期待在一首乐曲从每个脚本

嗯......怎么样?

add (a reference to the_track) to playlist thePlaylist

尝试:

copy the_track to end of playlist thePlaylist

代替。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top