需要对iTunes COM持久ID进行说明。将曲目传输到iPod时,其ID是否相同?

需要对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

我正在用iTunes COM api编写一个JScript脚本,用于更新iPod数据库中的分级和播放次数,并将其返回iTunes库。为此,脚本应该能够识别从该iTunes库传输的歌曲,以便能够读取iPod上曲目的分级数据,并更新iTunes库中相应的曲目

以下是我编写的代码:

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