如何使用PHAsset从文件中获取NSData

Dmi*_*pov 3 file nsurl ios phasset

我在路径上有档案

file:///var/mobile/Media/DCIM/100APPLE/IMG_0197.mov
Run Code Online (Sandbox Code Playgroud)

但是当我尝试这个代码时 -

NSError *error;
NSData *data = [NSData dataWithContentsOfFile:assetUrl.relativePath options:NSDataReadingMappedAlways error:&error];
Run Code Online (Sandbox Code Playgroud)

除了错误,我什么都没得到

错误域= NSCocoaErrorDomain代码= 257"(可可,ошибка257)"UserInfo = 0x175a61380 {NSFilePath =/var/mobile/Media/DCIM/100APPLE/IMG_0197.mov,NSUnderlyingError = 0x17424e550"Неудалосьзавершитьоперацию.不允许操作"}

文件存在,但我无法读取它.

但同时AVPlayer通常会播放视频文件.

我试过了

PHFetchResult *fetchResult = [PHAsset fetchAssetsWithALAssetURLs:@[assetUrl] options:nil];
Run Code Online (Sandbox Code Playgroud)

但我没有得到任何结果.

hol*_*ann 8

您无法NSURL直接访问,因为文件位于应用沙盒之外.某些框架(如AVPlayer)具有异常权限,可以访问URL.要访问PHAsset对象的数据,请查看以下方法PHImageManager:

对于图像: requestImageDataForAsset

对于视频: requestExportSessionForVideo