最近,我们更新了iOS13。在更新之前,我们的应用程序已能够从Gallery中挑选视频/媒体。但是最近更新之后,该应用会从图库中选择视频,但是一旦上传,上传的内容就会显示为0字节。猜测操作系统无法从我们的应用程序访问Gallery。
在iOS 12和更低版本中,我们没有看到此问题。 Gallery与我们的应用程序配合正常。
下面的委托方法在iOS 13和更低版本的iOS中返回不同的URL。
- (void)videoPickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info{
NSURL *videoURL = [info objectForKey:UIImagePickerControllerMediaURL];}
我正在从UIImagePickerController返回视频URL路径。
iOS 13返回低于值的值
文件:///private/var/mobile/Containers/Data/PluginKitPlugin/36B89CF8-26FC-44BA-AFE1-D689DC04AF44/tmp/trim.400D33F1-BA28-42C8-B6B7-5CEC26656917.MOV
iOS早期版本返回的值低于该值 文件:///private/var/mobile/Containers/Data/Application/7BFD7CEC-E383-4C63-8DF8-A0830EE948AC/tmp/36346EAD-AADC-4A9A-9DEE-416A2DE0BE71.MOV
注意:直接从应用程序中记录在相机中的视频被上传时。它不会给我们带来任何问题。从“图库”中选取视频时,应用程序的行为会有所不同。
请分享您的建议。
谢谢。
答案 0 :(得分:0)
我有一个类似的问题。我认为解决方案是将视频复制到您的应用有权访问的临时位置。
另一个问题的答案是here。
答案 1 :(得分:-1)
上述问题的解决方案:在关闭视频相册的iOS13中,视频URL失效。为此,我们需要更改URL目录路径。
NSURL *videoURL1 = [info objectForKey:UIImagePickerControllerMediaURL];
NSMutableData *imageData = [NSMutableData dataWithContentsOfURL:videoURL1];
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *videoPath =[documentsDirectory stringByAppendingPathComponent:[NSString stringWithFormat:@"%@",[NSString stringWithFormat:@"%u.MOV",arc4random() % 99999]]];
BOOL success = [imageData writeToFile:videoPath atomically:NO];
NSURL *videoURL = [NSURL fileURLWithPath:videoPath];