Я пишу сценарий 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
Теперь вопросы:
- Прав ли я, говоря, что 64-битный постоянный идентификатор для дорожки в медиатеке iTunes остается прежним при передаче дорожки на iPod.
- Что-то не так в том, как я использую
ITObjectPersistentIDHigh()
и ITObjectPersistentIDLow()
- Есть ли другой способ сделать это?
PS: на тестовом iPod 662 песни, поэтому проблем нет
Любая помощь очень ценится! Thnx!