Выберите видео с помощью UIImagePickerController в 2G / 3G - PullRequest
5 голосов
/ 03 мая 2010

У меня проблема с тем, что я не могу выбрать видео из фотоальбома на устройстве iPhone 2G / 3G. Приложение по умолчанию для фотографий показывает видео и может воспроизводить его, что, в свою очередь, означает, что UIImagePickerController должен четко отображать видео в фотоальбоме и выбирать их.

Я кодировал это, чтобы определить, может ли устройство снимать фотографии, записывать видео, выбирать фотографии и выбирать видео:

 // Check if camera and video recording are available:
 [self setCameraAvailable:NO];
 [self setVideoRecordingAvailable:NO];
 [self setPhotoSelectionAvailable:NO];
 [self setVideoSelectionAvailable:NO];

 // For live mode:
 NSArray *availableTypes = [UIImagePickerController availableMediaTypesForSourceType:UIImagePickerControllerSourceTypeCamera];
 NSLog(@"Available types for source as camera = %@", availableTypes);
 if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera])
 {
  if ([availableTypes containsObject:(NSString*)kUTTypeMovie])
   [self setVideoRecordingAvailable:YES];
  if ([availableTypes containsObject:(NSString*)kUTTypeImage])
   [self setCameraAvailable:YES];
 }

 // For photo library mode:
 availableTypes = [UIImagePickerController availableMediaTypesForSourceType:UIImagePickerControllerSourceTypePhotoLibrary];
 NSLog(@"Available types for source as photo library = %@", availableTypes);
 if ([availableTypes containsObject:(NSString*)kUTTypeImage])
  [self setPhotoSelectionAvailable:YES];
 if ([availableTypes containsObject:(NSString*)kUTTypeMovie])
  [self setVideoSelectionAvailable:YES];

Полученные журналы для устройства 3G выглядят следующим образом:

2010-05-03 19:09:09.623 xyz [348:207] Available types for source as camera = (
    "public.image"
)
2010-05-03 19:09:09.643 xyz [348:207] Available types for source as photo library = (
    "public.image"
)

В качестве состояния журналов для библиотеки фотографий строковый эквивалент kUTTypeMovie недоступен, и, следовательно, UIImagePickerController не отображается (или, скорее, выдает исключение, если мы устанавливаем массив типов источников, который включает в себя kUTTypeMovie), файлы фильмов в библиотеке фотографий.

Я не тестировал 3GS, но уверен, что в ней нет этой проблемы со ссылкой на другие темы.

Я собрал приложение для 3.0 (базовый SDK) и 3.1, но с одинаковыми результатами.

Этот вопрос уже обсуждался в ветке: http://www.iphonedevsdk.com/forum/iphone-sdk-development/36197-uiimagepickercontroller-does-not-show-movies-albums.html

Но похоже, что оно не является решением проблемы.

Какие-нибудь решения этой проблемы?

Спасибо и С уважением, Радж Паван

Ответы [ 3 ]

5 голосов
/ 20 августа 2010

Поскольку после сжатия видео всегда сжимаются (исходные файлы видеомагнитофона очень большие), а модели 2G / 3G не могут аппаратно кодировать / декодировать h.264, они оставили его вне UIImagePickerController API. Это прискорбно, поскольку всем нам также хотелось бы снимать видео на этих устройствах.

3 голосов
/ 10 мая 2010

Приложение фотографий по умолчанию показывает видео и может воспроизводить его

Но как вы это проверили? 2G / 3G не может записывать видео. Таким образом, вы не можете поместить видеофайлы в средство выбора изображений. Или я не прав?

Документация прямо говорит: «Поскольку источник мультимедиа может отсутствовать или может быть недоступен, устройства могут не всегда поддерживать все типы источников». Таким образом, iPhone OS предполагает, что не может быть никаких фильмов, и не позволяет их выбирать. Я так думаю.

0 голосов
/ 08 мая 2010

На 3GS он работает отлично, и дело в том, что 3Gs вышли после SDK 3.1, поэтому 3.0 не обрабатывает связанные с видео вещи ...!

...