2012-02-27 2 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

Фантастический! Я предполагаю, что Apple предоставит интерфейс для этого в какой-то момент. Но это работает. – bentford

+0

Привет, вы можете получить свой url на самом деле? Я могу распечатать название, но URL-адрес null, я хочу получить URL-адреса фильмов. Знаете ли вы, возможно ли это? –

1

СВИФТ 3 форма @John 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)") 
    } 

, то вы можете изменить тип, как вам нужно.