MPMediaPickerController,视频媒体类型不起作用

时间:2012-02-27 23:53:59

标签: ios mpmediapickercontroller

我正在尝试使用新的视频媒体类型浏览存储在我的i​​Pod库中的视频。对于任何视频类型,我都会在控制台上收到此错误:

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,

2 个答案:

答案 0 :(得分: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上都没问题。但我仍然有你的问题。解决方法是将上面的代码结果放在自己的模态视图中。

答案 1 :(得分:2)

SWIFT 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)")
    }

然后您可以根据需要更改类型。