Ios UIImagePickerControllerSourceTypePhotoLibrary“;解码器忙“;拾取视频时出错
我遇到的问题是,在从库中拾取多个视频(一个接一个)后,视频播放器(UIImagePickerController)的预览栏为黑色(但可以播放) 选择文件imagePickerController:didFinishPickingMediaWithInfo:后,将在不使用UIImagePickerController的情况下调用该文件。在此之后,每次打开UIImagePickerController时都会发生一次。为了能够再次选择一部新电影,有时重启应用程序就足够了。有时甚至需要重新启动手机(或者我只是太不耐烦了) 我发现这个问题:。我相信它有同样的背景,但我不知道如何解决这个问题。在应用程序内部,视频播放效果非常好 显示和取消UIImagePickerController的代码如下所示Ios UIImagePickerControllerSourceTypePhotoLibrary“;解码器忙“;拾取视频时出错,ios,video,avfoundation,uiimagepickercontroller,Ios,Video,Avfoundation,Uiimagepickercontroller,我遇到的问题是,在从库中拾取多个视频(一个接一个)后,视频播放器(UIImagePickerController)的预览栏为黑色(但可以播放) 选择文件imagePickerController:didFinishPickingMediaWithInfo:后,将在不使用UIImagePickerController的情况下调用该文件。在此之后,每次打开UIImagePickerController时都会发生一次。为了能够再次选择一部新电影,有时重启应用程序就足够了。有时甚至需要重新启动手机(或者
- (IBAction)openVideoLibrary:(id)sender {
if (_allowVideoSelection) {
if([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypePhotoLibrary] == NO || ![[UIImagePickerController availableMediaTypesForSourceType:UIImagePickerControllerSourceTypePhotoLibrary] containsObject:(NSString*)kUTTypeMovie]) {
return;
}
UIImagePickerController *pickerController = [[UIImagePickerController alloc] init];
[pickerController setSourceType:UIImagePickerControllerSourceTypePhotoLibrary];
pickerController.mediaTypes = [[NSArray alloc] initWithObjects:(NSString*)kUTTypeMovie, nil];
[pickerController setEditing:NO];
[pickerController setDelegate:self];
[self presentViewController:pickerController animated:YES completion:nil];
}
}
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info {
NSLog(@"info: %@", info);
if (picker.sourceType == UIImagePickerControllerSourceTypePhotoLibrary) {
[picker dismissViewControllerAnimated:YES completion:^{
if (![info valueForKey:UIImagePickerControllerMediaURL]) {
NSLog(@"Error: No media URL");
return;
}
else {
NSLog(@"Yey media");
}
}];
}
}
有没有更好/更干净的方法来逐个拾取多个媒体文件的想法?拾取选项分几个阶段集成在工作流中,因此无法同时拾取图像。只有一定数量的AVPlayer可以并行运行。如果包含AVPlayer属性的UIViewController被解除,AVPlayer不会自动解除分配,并保持活动状态,直到iOS在后台将其杀死。如果重复分配AVPlayer而不设置AVPlayerLayer.player=nil,则在某一点上iOS不允许实例化另一个AVPlayer。错误:“AVPlayerItem失败,AVStatusFailed出现,错误代码“无法解码”