问题

我在做根据链接下载视频到沙盒,然后保存到相册的过程中,遇到一个问题:

当我将保存到沙盒中的视频文件保存到相册后,在相册中显示的视频的时间并不是我下载视频的时间,而是视频内部自带的creationDate 属性

解决办法

  //#import <Photos/Photos.h>


  // 此路径为保存到沙盒中的视频文件的完整路径
  NSString *fullFilePath = "/Users/username/Library/Developer/CoreSimulator/Devices/88B0FE76-575F-41A9-BF5F-135DA452241D/data/Containers/Data/Application/8FEDE3D6-0B5B-420F-9A6E-7907F8AF8188/Library/Caches/FjYwxHtjg9-z8LLD-sEmIP_VfCow.mp4";

  // 保存视频到相册,同时修改视频的创建时间属性
  PHPhotoLibrary *photoLibrary = [PHPhotoLibrary sharedPhotoLibrary];
  [photoLibrary performChanges:^{
    // 将视频保存到相册中
    PHAssetChangeRequest *request = [PHAssetChangeRequest creationRequestForAssetFromVideoAtFileURL:[NSURL fileURLWithPath:fullFilePath]];
    // 修改视频的创建时间属性
    request.creationDate = [NSDate date];
  } completionHandler:^(BOOL success, NSError * _Nullable error) {
    if (success) {
      NSLog(@"已将视频保存至相册");
    } else {
      NSLog(@"未能保存视频到相册");
    }
  }];

局限

因为引入Photos Framework,所以只支持 iOS8.0 及以上版本

参考

Photos(PHAssetChangeRequest)

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐