从图库中挑选的视频无法在iOS 13中播放

时间:2019-09-27 13:49:31

标签: ios objective-c ios13 video-gallery

最近,我们更新了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

注意:直接从应用程序中记录在相机中的视频被上传时。它不会给我们带来任何问题。从“图库”中选取视频时,应用程序的行为会有所不同。

请分享您的建议。

谢谢。

2 个答案:

答案 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];