У меня есть приложение, которое записывает видео. Приложение представляет собой смесь cocos2d и UIKit, хотя часть, использующая UIImagePickerController, полностью является UIKit.
Проблема:
После съемки видео, когда вы нажимаете кнопку «Использовать», кнопка меняется на выбранное состояние, а затем ничего не происходит. Кнопка "Повторный прием" отключена. Вы по-прежнему можете воспроизвести / приостановить видео, но представление никогда не закрывается и - (void) imagePickerController: (UIImagePickerController *) средство выбора didFinishPickingMediaWithInfo: (NSDictionary *) info
никогда не вызывается.
Проблема возникает долго и короткие (<5 секунд) видео. При появлении предупреждений о памяти проблема не воспроизводилась. Изменение аудиосеансов перед запуском средства выбора изображений также не привело к воспроизведению проблемы.
Мне не удалось вызвать проблему. Это случается лишь изредка. Есть идеи?
Вот код, который представляет UIImagePickerController
UIImagePickerController *tmpVC = [[UIImagePickerController alloc] init];
tmpVC.delegate = self;
tmpVC.allowsEditing = YES;
// First get the right media types for the right source
NSArray *types = nil;
if (useCamera)
{
types = [UIImagePickerController availableMediaTypesForSourceType:UIImagePickerControllerSourceTypeCamera];
tmpVC.sourceType = UIImagePickerControllerSourceTypeCamera;
}
else
{
types = [UIImagePickerController availableMediaTypesForSourceType:UIImagePickerControllerSourceTypePhotoLibrary];
tmpVC.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
}
// Then see if "movie" is in there
for (NSString *mediaType in types)
{
if ([mediaType isEqualToString:(NSString*)kUTTypeMovie])
{
tmpVC.mediaTypes = [NSArray arrayWithObjects:(NSString*)kUTTypeImage,(NSString*)kUTTypeMovie,nil];
tmpVC.videoQuality = UIImagePickerControllerQualityTypeHigh;
}
}
// Present the configured controller
[self presentModalViewController:tmpVC animated:YES];
[tmpVC release];