2011-04-23 2 views
2

OS 드롭 다운을 허용하고 파일의 메타 데이터를 수정 한 다음 삭제 된 파일을 새로 고침하여 iTunes에서 '메타 데이터'를 업데이트 할 수 있도록 OS X 프로그램을 업데이트하고 있습니다. 도서관.ScriptingBridge를 통해 iTunes에서 특정 트랙을 얻을 수 있습니다.

트랙 ID, 영구 ID 및 위치를 비롯한 파일에 대한 기타 정보를 사전으로 제공하는 삭제 도구가 있습니다. 지금 내가 파일 위치 또는 삭제 정보에 의해 제공되는 영구 ID로 특정 트랙을 가져와야하는 시점에 있습니다. 그래서 새로 고침 메서드를 호출하여 iTunes가 파일을 다시 검토하고 변경 사항을 업데이트하도록 할 수 있습니다 메타 데이터에 추가합니다.

가져온 iTunes 헤더 파일과 SBApplication 개체가 생성되었으므로이 시점에서 올바른 방법으로 효율적으로이 트랙을 잡았습니다. 언급 한 바와 같이

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

어떤 소식이 있습니까? ID로 노래를 가져 오는 방법이 있습니까? – david

답변

5

이미 아이튠즈 드롭에서 제공하는 파일에 대한 몇 가지 정보에 대한 액세스를했다 : 나는 ScriptingBridge를 사용 아이튠즈에서 현재 트랙 정보를 얻을 방법

0

이입니다. 해당 파일에 대한 정보를 iTunes 라이브러리의 파일에있는 파일 이름 또는 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 라이브러리의 트랙과 일치시켜 데이터 새로 고침 명령을 보낼 수있는 방법이었습니다. 나는이 문제를 해결하기 위해 잠시 후에 나의 해결책을 게시 할 것입니다. –