我想让用户从设备上的 iPod 库中选择一个视频文件(这样我就可以在我自己的应用程序中播放它)。那可能吗?我正在考虑使用 MPMediaPickerController 但我不确定它是否能够选择视频文件或仅音频文件。
任何帮助将不胜感激。
谢谢,
我想让用户从设备上的 iPod 库中选择一个视频文件(这样我就可以在我自己的应用程序中播放它)。那可能吗?我正在考虑使用 MPMediaPickerController 但我不确定它是否能够选择视频文件或仅音频文件。
任何帮助将不胜感激。
谢谢,
这似乎在带有 MPMediaPickerController 的 iOS 5 中是可能的,它现在允许设置这些类型:
// video media types
MPMediaTypeMovie = 1 << 8,
MPMediaTypeTVShow = 1 << 9,
MPMediaTypeVideoPodcast = 1 << 10,
MPMediaTypeMusicVideo = 1 << 11,
MPMediaTypeVideoITunesU = 1 << 12,
MPMediaTypeAnyVideo = 0xff00,
仅 os 5。
收集完项目后,您需要访问 url:
MPMediaItem * item = ....
NSString *url = [item valueForProperty:@"MPMediaItemPropertyAssetURL"];
而且这个url只能和AV Foundation一起使用,所以使用AVPlayer,而不是MPMoviePlayerController。
从文档:
MPMediaItemPropertyAssetURL
A URL pointing to the media item, from which an AVAsset object (or other
URL-based AV Foundation object) can be created, with any options as desired.
Value is an NSURL object.
The URL has the custom scheme of ipod-library. For example, a URL might look
like this:
ipod-library://item/item.m4a?id=12345
Usage of the URL outside of the AV Foundation framework is not supported.
Available in iOS 4.0 and later.
选择器有一个名为 的属性,这是在此处mediaTypes
声明的枚举,如下所示:
enum {
// audio media types
MPMediaTypeMusic = 1 << 0,
MPMediaTypePodcast = 1 << 1,
MPMediaTypeAudioBook = 1 << 2,
MPMediaTypeAnyAudio = 0x00ff,
// generic media type
MPMediaTypeAny = ~0
};
正如你所看到的,没有任何迹象表明蜂鸣是非音频的,除了MPMediaTypeAny
文档说
MPMediaTypeAny 如果设置,媒体项包含未指定类型的音频。
这意味着只有音频,对不起。:(
像这样做:
IImagePickerController *imagePicker = [[UIImagePickerController alloc] init];
imagePicker.delegate = self;
imagePicker.sourceType = UIImagePickerControllerSourceTypeSavedPhotosAlbum;
// UIImagePickerControllerSourceTypeSavedPhotosAlbum;// UIImagePickerControllerSourceTypePhotoLibrary
imagePicker.mediaTypes = [UIImagePickerController availableMediaTypesForSourceType:imagePicker.sourceType];
imagePicker.allowsEditing = NO;