Нужно объяснение в iTunes COM постоянный идентификатор. Идентичен ли трек при передаче его на iPod?

Я пишу сценарий JScript с iTunes COM API для обновления ratings а также played count из базы данных 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
}

По API iTunes COM

Вы можете извлечь источник, список воспроизведения или дорожку с указанным постоянным идентификатором, используя свойство ItemByPersistent ID соответствующего интерфейса коллекции.

ItemByPersistent ID возвращает объект IITTrack с указанным постоянным идентификатором

Теперь вопросы:

  1. Прав ли я, говоря, что 64-разрядный постоянный идентификатор для дорожки в медиатеке iTunes остается прежним, когда дорожка передается на iPod.
  2. Что-то не так в том, как я использую ITObjectPersistentIDHigh() а также ITObjectPersistentIDLow()
  3. Есть ли другой способ сделать это?

PS: на тестовом iPod 662 песни, поэтому проблем нет

Любая помощь высоко ценится! Thnx!

2 ответа

Если у вас установлена ​​последняя версия nano и включена функция озвучивания, идентификатор меняется, в противном случае - нет. Я пытаюсь выяснить, как SW знает, как обновить счетчик воспроизведения и время при синхронизации, поскольку идентификатор не совпадает.

Я не думаю, что есть только один другой способ сделать это, очень длинный: сравнить, для каждого трека в iPod, названия, альбомы, длины и т. Д. С тем, который у вас есть в вашей библиотеке. Однако я не думаю, что это будет очень эффективное решение, просто "простое в программировании".

Я использовал persistentID так же, как вы (хотя и в плейлисте). Это должно работать... Может быть, вы должны установить параметр как int...

Другие вопросы по тегам