2011-04-23 41 views
2

我正在更新我的OS X程序以接受iTunes下載,修改文件中的元數據,然後刷新(獲取信息)下落的文件,以便iTunes可以更新其元數據圖書館。通過ScriptingBridge獲得iTunes中的特定曲目

我有滴工作,它提供了一些關於該文件的其他信息的字典,包括軌道ID,持久性ID和位置。我現在正處於需要獲取特定曲目的位置,無論是通過文件位置還是放置信息提供的持久ID,因此我可以調用其刷新方法來強制iTunes重新檢查文件並更新更改到元數據。

我已經導入了iTunes頭文件並創建了SBApplication對象,在這一點上,我非常堅持以有效的方式獲得正確的軌道。

+0

有關這方面的消息嗎?有沒有一種方法可以通過ID獲取歌曲? – david 2011-06-17 08:00:45

回答

5

如前所述,我已經獲得有關iTunes的下降提供了一個文件中的一些信息。我需要根據文件名或由drop library提供的persistentID來匹配關於該文件的信息,我的解決方案是針對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]; 
0

這是我如何得到的iTunes使用ScriptingBridge當前曲目信息:

iTunesApplication * iTunes = [SBApplication applicationWithBundleIdentifier:@"com.apple.iTunes"]; 
NSString * artist = [[iTunes currentTrack] artist]; 
NSString * trackname = [[iTunes currentTrack] name]; 
/* etc. */ 
+0

良好的信息,但沒有回答這個問題。我說我已經有了關於iTunes提供的文件的信息。所需要的是一種將該文件匹配到itunes庫中的軌道的方式,以便我可以發送刷新數據命令。我最終解決了這個問題,我馬上發佈我的解決方案。 – 2011-08-26 22:38:08

相關問題