2012-02-27 5 views
5

새로운 비디오 미디어 유형을 사용하여 iPod 라이브러리에 저장된 비디오를 탐색하려고합니다. 모든 비디오 유형에서 콘솔에서이 오류가 발생합니다.비디오 미디어 유형이 작동하지 않는 MPMediaPickerController

Warning: Unsupported media types (1024), using MPMediaTypeAny. 

이 오류가 발생하면 피커는 오디오 유형 만 표시합니다.

참고로, 이러한 iOS5.0에서 사용할 수있는 새로운 미디어 유형은 (MediaPlayer.framework/MediaItem.h에 정의) :

// video (available in iOS 5.0) 
MPMediaTypeMovie  = 1 << 8, 
MPMediaTypeTVShow  = 1 << 9, 
MPMediaTypeVideoPodcast = 1 << 10, 
MPMediaTypeMusicVideo = 1 << 11, 
MPMediaTypeVideoITunesU = 1 << 12, 
MPMediaTypeAnyVideo  = 0xff00, 

답변

11

가 성공적으로 예를 들어 코드에서 영화 라이브러리를 조회 할 수 있습니다

MPMediaPropertyPredicate *predicate = [MPMediaPropertyPredicate predicateWithValue:[NSNumber numberWithInteger:MPMediaTypeMovie] forProperty:MPMediaItemPropertyMediaType]; 

MPMediaQuery *query = [[MPMediaQuery alloc] init]; 
[query addFilterPredicate:predicate]; 

NSArray *items = [query items]; 

for (MPMediaItem* item in items) 
{ 
    NSString* title = [item valueForProperty:MPMediaItemPropertyTitle]; 

    url = [item valueForProperty:MPMediaItemPropertyAssetURL]; 

} 

모든 영화 제목이 표시되어야합니다. 이것은 IOS5와 iPad 2에서 나에게 좋습니다. 나는 아직도 당신의 문제를 가지고 있습니다. 해결 방법은 위의 코드 결과를 자체 모달보기로 만드는 것입니다. 당신이 필요로

+0

환상적! 나는 애플이 어느 시점에서 UI를 제공 할 것이라고 가정하고있다. 그러나 이것은 효과적이다. – bentford

+0

안녕하세요, 실제로 URL을 가져올 수 있습니까? 제목을 인쇄 할 수 있지만 URL이 null 인 경우 영화의 URL을 가져오고 싶습니다. 그게 가능한지 아십니까? –

1

SWIFT 3 형태 @ 존 Goodstadt는

import MediaPlayer 

let predicate = MPMediaPropertyPredicate(value: MPMediaType.any.rawValue, forProperty: MPMediaItemPropertyMediaType) 
    let query = MPMediaQuery() 
    query.addFilterPredicate(predicate) 
    let items = query.items 
    for item in items! { 
     DLog("title: \(item.title); url: \(item.assetURL)") 
    } 

당신은 유형을 변경할 수 있습니다.