在 UIPopoverController 中使用 UIImagePickerController 后播放视频消失
Posted
技术标签:
【中文标题】在 UIPopoverController 中使用 UIImagePickerController 后播放视频消失【英文标题】:Video disappearing when played after using UIImagePickerController in a UIPopoverController 【发布时间】:2011-03-10 18:18:06 【问题描述】:当 UIImagePickerController 出现在 UIPopoverController 中时,从 UIImagePickerController 中选择任何内容后,我播放视频最困难。
这是展示视频的代码:
-(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 是在我的 viewDidLoad 中分配和初始化的 MPMoviePlayerViewController ivar
[self presentMovie] 可以完美运行,除非它是从 -imagePickerController:didFinishPickingMediaWithInfo: 方法中调用的
当从该委托方法调用时,由 MPMoviePlayerVideoController 显示的视频会在播放后立即消失。如果“shouldAutoPlay”属性设置为“是”,我只会看到加载一瞬间,然后是黑色。如果 'shouldAutoPlay' 属性设置为 NO,那么我会看到视频的第一帧,我可以将视频拖到视频中的不同位置,将视频移入和移出全屏等,但只要我点击播放,视频所在的视图变黑。如果我尝试播放的视频来自 UIImagePickerController 选择或来自 mainBundle,则这是正确的。一旦 UIImagePicker 被选中,视频将不会播放。
我已经完成了几个调试步骤,只有当 UIImagePickerControll 位于 iPad 上的 UIPopoverController 中时,UIImagePickerControll 才出现在 iPhone 上的模态视图中。
有什么想法吗?还有其他人能够在 iPad 上成功播放从 UIImagePickerController 中选择的视频吗?
【问题讨论】:
您可能想要移动行 [[mp moviePlayer] setContentURL:movieURL];和 [[mp moviePlayer] prepareToPlay];一直到该方法的底部。 【参考方案1】:原来答案是使用 ALAsssetsLibrary “自己动手”。 UIImagePickerContorller 不适用于 iPad 上的视频,创建自己的自定义选取器并不难。有来自 WWDC 2010 的示例代码以及来自 GitHub 上的 Mat Tuzzolo 的代码 https://github.com/elc/ELCImagePickerController
【讨论】:
【参考方案2】:我遇到了这个问题,从 UIImagePickerController 中选择视频后无法播放,但我没有完全释放弹出框。当我正确释放它时,它工作正常。
感谢谨慎@UIImagePickerController choosing video prevents MPMoviePlayerViewController instance from working
【讨论】:
以上是关于在 UIPopoverController 中使用 UIImagePickerController 后播放视频消失的主要内容,如果未能解决你的问题,请参考以下文章
UIPopoverController、Xcode 6、IOS 8 使用 Swift