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

Я пишу сценарий JScript с API iTunes COM для обновления 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
}

По данным iTunes COM API

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

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

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

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

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

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

Ответы [ 2 ]

0 голосов
/ 14 апреля 2011

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

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

0 голосов
/ 10 декабря 2009

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

...