MPMediaPickerController для выбора видео файлов

Я хочу разрешить пользователю выбирать видеофайл из библиотеки iPod на устройстве (чтобы я мог воспроизвести его в своем собственном приложении). Это возможно? Я думал об использовании MPMediaPickerController, но не уверен, может ли он выбирать видеофайлы или только аудиофайлы.

Любая помощь будет оценена.

Спасибо,


person Rony Rozen    schedule 18.03.2010    source источник


Ответы (3)


У сборщика есть свойство под названием _ 1_, это перечисление, объявленное здесь, вот так:

enum {
   // audio media types
   MPMediaTypeMusic        = 1 << 0,
   MPMediaTypePodcast      = 1 << 1,
   MPMediaTypeAudioBook    = 1 << 2,
   MPMediaTypeAnyAudio     = 0x00ff,

   // generic media type
   MPMediaTypeAny          = ~0
};

Как вы можете видеть, ничто не указывает на то, что это что-то не аудио, кроме MPMediaTypeAny, но в документации сказано

MPMediaTypeAny Если установлено, мультимедийный элемент содержит аудио неопределенного типа.

Это означает только звук, извините. :(

person bddckr    schedule 18.03.2010
comment
Что ж, это не тот ответ, на который я надеялся, но он отвечает на мой вопрос. Спасибо! - person Rony Rozen; 18.03.2010
comment
См. Ниже, как это сделать в iOS 5. - person ransomweaver; 17.02.2012

Кажется, это возможно в iOS 5 с MPMediaPickerController, который теперь позволяет устанавливать следующие типы:

  // 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.
person ransomweaver    schedule 17.02.2012

Делай это так:

IImagePickerController *imagePicker = [[UIImagePickerController alloc] init];
    imagePicker.delegate = self;
    imagePicker.sourceType = UIImagePickerControllerSourceTypeSavedPhotosAlbum;
    // UIImagePickerControllerSourceTypeSavedPhotosAlbum;// UIImagePickerControllerSourceTypePhotoLibrary
    imagePicker.mediaTypes = [UIImagePickerController availableMediaTypesForSourceType:imagePicker.sourceType];
    imagePicker.allowsEditing = NO; 
person user387184    schedule 09.07.2010
comment
Это будет работать для видео, записанного пользователем, а не для видео в библиотеке iPod. - person ransomweaver; 17.02.2012