如何在后台模式下继续从照片库中选择视频?
我的意思是当我从use
按imagePickerController - PhotoLibrary
按钮并且视频开始压缩时 - 在此压缩过程中(已附加屏幕截图)如果我按home button(i.e. go to background)
然后来{ {1}}然后我将foreground
作为info[UIImagePickerControllerMediaURL]
,那么应用是否可以继续在后台压缩视频,并在null
时返回正确的url
?< / p>
屏幕截图:
我的foreground
,
didFinishPickingMediaWithInfo
P.S:如果我们按 -(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary<NSString *,id> *)info{
NSURL *url = info[UIImagePickerControllerMediaURL];
NSLog(@"url : %@",url);
[picker dismissViewControllerAnimated:YES completion:nil];
}
录制视频并转到后台,那么它将停止录制,我们可以在前景后使用它。
我想过一个解决方法 - camera
但是它并不适用于所有情况,如果视频很大,那么它有时间限制,所以寻找任何其他解决方案!
任何帮助将不胜感激! :)
答案 0 :(得分:1)
如果我们想在<command> {*}[glob -directory ../myDir PlainText$i.*]
期间video
UIImagePickerController
来photolibrary
继续选择video is compressing and user press home button(app go in background)
,那么我们必须使用UIBackgroundTaskIdentifier
在后台继续执行,或者任何其他背景方式,使应用程序在后台工作(不太可能!)。现在,UIBackgroundTaskIdentifier
有时间限制,因此我们无法选择任何大小的视频,因此如果我们限制了视频的持续时间,那么我们可以在背景中连续选择它,例如,
UIImagePickerController *picker = [[UIImagePickerController alloc] init];
picker.delegate = self;
picker.allowsEditing = YES;
picker.videoMaximumDuration = 60.0;
self.backgroundTask = UIBackgroundTaskInvalid;
self.backgroundTask = [[UIApplication sharedApplication] beginBackgroundTaskWithExpirationHandler:^{
NSLog(@"Background handler called. Not running background tasks anymore.");
[[UIApplication sharedApplication] endBackgroundTask:self.backgroundTask];
self.backgroundTask = UIBackgroundTaskInvalid;
}];
[self presentViewController:picker animated:YES completion:NULL];
使用UIImagePickerController
,我们只能在后台选择视频。如果有人想在后台挑选大型视频,那么他/她应该查看ALAssetLibrary
或Photos framework
。