Видео исчезает при воспроизведении после использования UIImagePickerController в UIPopoverController
У меня самое сложное время воспроизведения видео после выбора чего-либо из UIImagePickerController, когда UIImagePickerController представлен в UIPopoverController.
Вот код, который представляет видео:
-(void) presentMovie{
NSString *filePath = [[NSBundle mainBundle] pathForResource:@"demo" ofType:@"mov"];
NSURL *movieURL = [NSURL URLWithString:filePath];
[[mp moviePlayer] setContentURL:movieURL];
[[mp moviePlayer] prepareToPlay];
[[mp moviePlayer] setShouldAutoplay:NO];
[[mp moviePlayer] setControlStyle:MPMovieControlStyleEmbedded];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(videoPlayBackDidFinish:) name:MPMoviePlayerPlaybackDidFinishNotification object:nil];
[[mp moviePlayer] setAllowsAirPlay:YES];
[[mp view] setAutoresizingMask:UIViewAutoresizingFlexibleWidth|UIViewAutoresizingFlexibleHeight];
[screen addSubview:mp.view];
[[mp view] setFrame:screen.bounds];}
mp это MPMoviePlayerViewController ivar, который выделяется и инициализируется в моем viewDidLoad
[self presentMovie] работает отлично, если только он не вызывается из -imagePickerController: didFinishPickingMediaWithInfo: метод
При вызове из этого метода делегата видео, отображаемое MPMoviePlayerVideoController, просто исчезает с момента его воспроизведения. Если для свойства shouldAutoPlay установлено значение YES, я просто вижу загрузку в течение доли секунды, а затем черноту. Если для свойства 'shouldAutoPlay' установлено значение NO, тогда я вижу первый кадр видео и могу перемещаться в другое место в видео, выводить видео на весь экран и т. Д., Но как только я нажимаю играть, вид, что видео в становится черным. Это верно, если видео, которое я пытаюсь воспроизвести, берется из выбора UIImagePickerController или из mainBundle. После выбора UIImagePicker видео не будет воспроизводиться.
Я прошел несколько этапов отладки, и этого не происходит с UIImagePickerControll, представленным в модальном представлении на iPhone, только когда он находится в UIPopoverController на iPad.
есть идеи? Кто-нибудь еще может успешно воспроизвести видео на iPad, выбранный из UIImagePickerController?
2 ответа
У меня была такая проблема, что видео не воспроизводилось после выбора из UIImagePickerController, но я не полностью выпустил поповер. Когда я выпустил его правильно, он работал нормально.
Благодаря благоразумию @ UIImagePickerController выбор видео предотвращает работу экземпляра MPMoviePlayerViewController
Оказывается, что ответ "брось свой собственный", используя ALAsssetsLibrary. UIImagePickerContorller не работает с видео на iPad, и создание собственного пользовательского средства выбора не слишком сложно. На GitHub есть пример кода из WWDC 2010, а также код из Mat Tuzzolo https://github.com/elc/ELCImagePickerController