gpt4 book ai didi

ios - UIImagePickerController - 从照片库中选择背景视频

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:03:34 26 4
gpt4 key购买 nike

如何在后台模式下继续从照片库中选择视频?

我的意思是,当我在 imagePickerController - PhotoLibrary 中按下 use 按钮时,视频开始压缩 - 在此压缩过程中(已附上屏幕截图),如果我按下 home 按钮(即转到后台) 然后来到 foreground 然后我得到 info[UIImagePickerControllerMediaURL]null,所以应用程序是否可以在后台继续压缩视频并在 foreground 时返回正确的 url

截图:

enter image description here

我的didFinishPickingMediaWithInfo,

 -(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary<NSString *,id> *)info{


NSURL *url = info[UIImagePickerControllerMediaURL];

NSLog(@"url : %@",url);

[picker dismissViewControllerAnimated:YES completion:nil];

}

P.S : 如果我们用camera录制视频然后转到后台,那么它会在那里停止录制,我们可以在前台使用它。

我想到了一种解决方法 - UIBackgroundTaskIdentifier 但它并非在所有情况下都有效,如果视频很大则它有时间限制,所以寻找任何其他解决方案!

任何帮助将不胜感激! :)

最佳答案

如果我们想在视频压缩和用户按下主页按钮( 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 我们可以做的只是在后台选择视频。如果有人想在背景中选择大型视频,那么他/她应该查看 ALAssetLibraryPhotos framework

关于ios - UIImagePickerController - 从照片库中选择背景视频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39827543/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com