需要对iTunes COM持久ID进行说明。将曲目传输到iPod时,其ID是否相同?
我正在用iTunes COM api编写一个JScript脚本,用于更新iPod数据库中的分级和播放次数,并将其返回iTunes库。为此,脚本应该能够识别从该iTunes库传输的歌曲,以便能够读取iPod上曲目的分级数据,并更新iTunes库中相应的曲目 以下是我编写的代码:需要对iTunes COM持久ID进行说明。将曲目传输到iPod时,其ID是否相同?,com,javascript,ipod,itunes-sdk,Com,Javascript,Ipod,Itunes Sdk,我正在用iTunes COM api编写一个JScript脚本,用于更新iPod数据库中的分级和播放次数,并将其返回iTunes库。为此,脚本应该能够识别从该iTunes库传输的歌曲,以便能够读取iPod上曲目的分级数据,并更新iTunes库中相应的曲目 以下是我编写的代码: var iTunesApp = WScript.createObject("iTunes.Application"); var mainLibrary = iTunesApp.LibraryPlaylist; var iP
var iTunesApp = WScript.createObject("iTunes.Application");
var mainLibrary = iTunesApp.LibraryPlaylist;
var iPodLibraryPlaylist = playlists.Item(1); // get the main iPod Library playlist(leaving the unimportant portion)
for(j=0; j <= iPodLibraryPlaylist.Tracks.Count - 1; j++) {
foo = iPodLibraryPlaylist.Tracks.Item(j+1); // j+1, coz this index is 1-based (why apple...why?)
bar = mainLibrary.Tracks.ItemByPersistentID(iTunesApp.ITObjectPersistentIDHigh(foo), iTunesApp.ITObjectPersistentIDLow(foo));
WScript.StdOut.WriteLine(bar.Name); // should print the name of the track, but throws runtime error: Object required
}
根据iTunes的COM API
您可以检索源、播放列表、,
或具有指定持久性的跟踪
使用ItemByPersistentID的ID
适当集合的属性
接口
ItemByPersistentID返回一个IITTrack
具有指定的持久属性的对象
身份证
现在的问题是:
我说的对吗?iTunes库中曲目的64位永久ID在曲目传输到iPod时保持不变。
我使用iTObject PersistentidHigh和iTObject PersistentidLow的方式是否有任何错误
有没有其他方法可以做到这一点?
PS:测试iPod上有662首歌曲,所以没有问题
非常感谢您的帮助!thnx 如果您拥有最新的nano,并打开画外音功能,则ID会更改,否则不会更改。我正试图弄清楚SW在同步时如何知道更新播放计数和时间,因为ID不一样。如果您有最新的nano,并打开画外音功能,则ID会改变,否则不会改变。我正在试图弄清楚软件在同步时如何知道更新播放计数和时间,因为ID不一样。我认为只有一种方法可以做到这一点,很长: 将iPod中的每首曲目的名称、相册、长度等与您的音乐库中的曲目进行比较。然而,我认为这不是一个非常有效的解决方案,只是一个易于编程的解决方案
我使用了persistentID,就像你在播放列表中使用的一样。它应该有用。。。也许您应该将参数设置为int 我不认为只有一种方法可以做到这一点,很长时间: 将iPod中的每首曲目的名称、相册、长度等与您的音乐库中的曲目进行比较。然而,我认为这不是一个非常有效的解决方案,只是一个易于编程的解决方案 我使用了persistentID,就像你在播放列表中使用的一样。它应该有用。。。也许您应该将参数设置为int