получить конкретный трек в itunes через ScriptingBridge

Я обновляю свою программу OS X, чтобы принимать капли iTunes, изменять метаданные в файле, а затем обновлять (получать информацию) удаленные файлы, чтобы iTunes могла обновить свою библиотеку метаданных.

У меня работают капли, которые предоставляют словарь некоторой разной информации о файле, включая идентификатор дорожки, постоянный идентификатор и местоположение. Сейчас я нахожусь в том месте, где мне нужно получить конкретную дорожку либо по местоположению файла, либо по постоянному идентификатору, предоставленному информацией о перетаскивании, поэтому я могу вызвать для нее метод обновления, чтобы заставить iTunes повторно изучить файл и обновить изменения. к метаданным.

У меня есть импортированный файл заголовка iTunes и созданный объект SBApplication, я довольно застрял на этом этапе в эффективном способе получить правильный трек.


person Arr MiHardies    schedule 23.04.2011    source источник
comment
Есть новости по этому поводу? Есть ли способ получить песню по ID?   -  person david    schedule 17.06.2011


Ответы (2)


Как уже говорилось, у меня уже был доступ к некоторой информации о файле, предоставленном iTunes. Мне нужно было сопоставить информацию об этом файле на основе имени файла или постоянного идентификатора, предоставленного путем перехода к файлу в библиотеке iTunes. Мое решение состояло в том, чтобы использовать фильтр предиката в библиотеке iTunes против коллекции библиотеки, возвращаемой мостом сценариев iTunes. .

    iTunesApplication *iTunes = [SBApplication applicationWithBundleIdentifier:@"com.apple.iTunes"];

    SBElementArray *sources = [iTunes sources];

    SBElementArray *entireLibrary = [[[[sources objectAtIndex:0] libraryPlaylists] objectAtIndex:0] fileTracks];

    NSPredicate *predicate = [NSPredicate predicateWithFormat:@"persistentID == %@", persistentID];

    [entireLibrary filterUsingPredicate:predicate];
person Arr MiHardies    schedule 26.08.2011

Вот как я получаю информацию о текущей дорожке из iTunes, используяScriptingBridge:

iTunesApplication * iTunes = [SBApplication applicationWithBundleIdentifier:@"com.apple.iTunes"];
NSString * artist    = [[iTunes currentTrack] artist];
NSString * trackname = [[iTunes currentTrack] name];
/* etc. */
person WrightsCS    schedule 09.06.2011
comment
Хорошая информация, но не ответил на вопрос. Я заявил, что у меня уже есть информация о файле, предоставленном дропом из iTunes. Нужен был способ сопоставить этот файл с дорожкой в ​​библиотеке itunes, чтобы я мог отправить команду обновления данных. В итоге я решил эту проблему. Я опубликую свое решение через мгновение. - person Arr MiHardies; 27.08.2011