2011-03-22 3 views
0

나는 아주 간단한 문제가있다. 내 테이블 뷰에 오디오 파일을 넣고 싶습니다. pdfs 및 영화 등과 어떻게 구별합니까?iTunes 기본 라이브러리 (Scripting Bridge에서 반환)에서 오디오 파일 만 가져 오는 방법은 무엇입니까?

나는 스크립팅 다리 아이튠즈에서 그들을 얻을 :

iTunesSource *source = [[[self iTunes] sources] objectAtIndex:0]; 
    iTunesPlaylist *mainPlaylist = [[source libraryPlaylists] objectAtIndex:0] ; 
    library_ = [[NSArray arrayWithArray:[mainPlaylist tracks]] retain ] ; 

이 iTunesFileTrack 찾을 수 없습니다 클래스를 말하는 나에게 오류를 제공 (시간 연결에) :

[track get]; 
if(![track isKindOfClass:[iTunesFileTrack class]]) { 
    DLog1(@"SKIPPING kind: %@", [track kind]); 
} 

난 내가 뭔가 간단하게 누락되었습니다 :)

관련 메모 : iTunes 보관함을 더 빨리 읽을 수 있습니까? XML 파일에서로드하는 방법에 대한 조언을하지만 안전하지 않은 것 같습니다. 다음 릴리스에서 사과가 변경되면 나는 망했다.

당신에게

편집 감사합니다 sdef /Applications/iTunes.app | sdp -fhm --basename iTunes으로 나는 클래스를 확인하기 위해 필요로하는 .m 파일을 생성 할 수 있습니다. 하지만 작동하지 않는 것 같습니다 :

[track get];   
if(![[track className] isEqualToString:@"ITunesFileTrack"]) { 
    DLog1(@"SKIPPING kind: %@", [track kind]); 
    continue; 
} 

Skipps 그냥 내 스트림 : P 영화가 아닙니다. (심지어 내가 (track.videoKind != iTunesEVdKNone)를 추가 할 때). 심지어 PDF 파일도 iTunesFileTracks입니다. 그러나 .H 상태 :

// a track representing an audio file (MP3, AIFF, etc.) 
@interface iTunesFileTrack : iTunesTrack 

답변

1

작동한다, 그래서 내 코드에서이 같은 것을 사용 (app 아이튠즈 SBApplication입니다) :

1) 먼저 라이브러리 소스를 얻을

- (ITunesSource *)librarySource { 
    NSArray *sources = [[app sources] get];  
    NSArray *libs = [sources filteredArrayUsingPredicate:[NSPredicate 
    predicateWithFormat:@"kind == %i", 
    ITunesESrcLibrary]]; 
    if ([libs count]) { 
    return [libs objectAtIndex:0]; 
    } 
    return nil; 
} 

2)) 라이브러리의 재생 목록 (들)

NSArray *libraryLists = [[[self librarySource] libraryPlaylists] get]; 
for (ITunesLibraryPlaylist *list in libraryLists) { 
    NSArray *listTracks = [[list fileTracks] get]; 
    for (ITunesTrack *listTrack in listTracks) { 
    // do stuff... 
    } 
    [listTracks release]; 
} 

3. 과정을 반복 이렇게 다른 트랙 유형을 확인할 수 있습니다.

+0

답장을 보내 주셔서 감사합니다. 하지만 오디오 파일 만 찾고 싶습니다. 그 listTracks는 영화, PDF 파일 등입니다. 오디오 파일을 가져 오는 방법을 알고 있습니까? – david

+0

위의 답변을 업데이트했습니다. –

+0

그게 효과가없는 것 같습니다. 그것은 비디오를 생략하지 않습니다. – david