0

最近我们更新了 iOS 13。在更新之前,我们的应用程序能够从图库中选择视频/媒体。但最近更新后,应用程序从图库中选择视频,但一旦上传,上传的内容显示为 0 字节。猜测操作系统不会从我们的应用程序访问图库。

在 iOS 12 和之前的版本中,我们没有看到这个问题。Gallery 在我们的应用程序中运行良好。

下面的委托方法在 iOS 13 和更早的 iOS 版本中返回不同的 URL。

- (void)videoPickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info{
  NSURL *videoURL = [info objectForKey:UIImagePickerControllerMediaURL];}

我从 UIImagePickerController 返回视频 URL 路径。

iOS 13 返回低于值
file:///private/var/mobile/Containers/Data/PluginKitPlugin/36B89CF8-26FC-44BA-AFE1-D689DC04AF44/tmp/trim.400D33F1-BA28-42C8-B6B7-5CEC26656917.MOV

早期的 iO​​S 版本返回以下值 file:///private/var/mobile/Containers/Data/Application/7BFD7CEC-E383-4C63-8DF8-A0830EE948AC/tmp/36346EAD-AADC-4A9A-9DEE-416A2DE0BE71.MOV

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

请分享您的建议。

提前致谢。

4

2 回答 2

0

我有一个类似的问题。我认为解决方案是将视频复制到您的应用可以访问的临时位置。

另一个问题的答案在这里

于 2019-10-24T13:59:26.840 回答
-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];
于 2019-10-15T09:44:53.170 回答