Я использую UIImagePickerController в своем приложении ios, чтобы дать пользователю возможность выбрать фотографию или видео из библиотеки фотографий. Я ограничиваю видео до 1 минуты. Вот мой код:
В действии кнопки:
- (void)getPictureOrVideoFromLibrary {
CFStringRef mTypes[2] = { kUTTypeImage, kUTTypeMovie };
CFArrayRef mTypesArray = CFArrayCreate(CFAllocatorGetDefault(), (const void**)mTypes, 2, &kCFTypeArrayCallBacks);
imagePickerController.mediaTypes = (__bridge NSArray*)mTypesArray;
CFRelease(mTypesArray);
imagePickerController.videoMaximumDuration = 60.0f;
imagePickerController.allowsEditing = YES;
imagePickerController.sourceType = UIImagePickerControllerSourceTypeSavedPhotosAlbum;
[self presentViewController:imagePickerController animated:YES completion:nil];
}
Я хочу показывать как изображения, так и видео в фотобиблиотеке, поэтому я использовал и kUTTypeImage
, и kUTTypeMovie
. Здесь я устанавливаю videoMaximumDuration
на 60.0f
и allowsEditing
на YES
, потому что я хочу ограничить длину видео до 1 минуты.
Проблема, с которой я столкнулся.
Средство выбора выглядит следующим образом (с видео и изображениями) [screenshot1]:
когда пользователь выбирает видео, оно отображается следующим образом (работает как положено):
Когда пользователь выбирает картинку, она выглядит так [screenshot2]:
Я не хочу показывать здесь прямоугольную рамку обрезки.
После того, как пользователь нажмет «Выбрать», я смогу определить, фото это или видео, в методе делегата didFinishPickingMediaWithInfo.
Но я хочу знать, фото это или видео со скриншота 1 до скриншота 2. так что я могу установить allowsediting
в NO, чтобы избавиться от этого прямоугольника.
Является ли это возможным?
Я не хочу отображать обе опции как «Выбрать фото из библиотеки», «Выбрать видео из библиотеки». Я просто хочу показать только один вариант - «Выбрать фото или видео из библиотеки».
Есть ли способ определить, выбирает ли пользователь изображение или видео, или можно избавиться от этого прямоугольного поля?
Возможно ли этого добиться?
Мне нужны ваши ценные предложения. Пожалуйста помогите. Заранее спасибо.