Forráskód Böngészése

1.修复 icloud 图片获取不到问题

huangxiaodong 1 hete%!(EXTRA string=óta)
szülő
commit
5884da86c7

+ 7 - 1
创维盒子/code/Class/Set/uploadFile/PhotoPreviewViewController.m

@@ -109,7 +109,12 @@
     
         if(!model.imageData)
         {
-            [[PHImageManager defaultManager] requestImageDataForAsset:model.asset options:nil resultHandler:^(NSData * _Nullable imageData, NSString * _Nullable dataUTI, UIImageOrientation orientation, NSDictionary * _Nullable info) {
+            PHImageRequestOptions *options = [[PHImageRequestOptions alloc] init];
+            options.networkAccessAllowed = YES; // Allow downloading from iCloud
+            options.version = PHImageRequestOptionsVersionCurrent;
+            options.deliveryMode = PHImageRequestOptionsDeliveryModeHighQualityFormat;
+            
+            [[PHImageManager defaultManager] requestImageDataForAsset:model.asset options:options resultHandler:^(NSData * _Nullable imageData, NSString * _Nullable dataUTI, UIImageOrientation orientation, NSDictionary * _Nullable info) {
                     // 直接得到最终的 NSData 数据
                     if (imageData) {
                         //model.imageData = imageData;
@@ -124,6 +129,7 @@
                 
                 PHVideoRequestOptions *options = [[PHVideoRequestOptions alloc] init];
                 options.version = PHVideoRequestOptionsVersionOriginal;
+                options.networkAccessAllowed = YES; // Allow downloading from iCloud
                 [[PHImageManager defaultManager] requestAVAssetForVideo:model.asset options:options resultHandler:^(AVAsset *asset, AVAudioMix *audioMix, NSDictionary *info) {
                     if ([asset isKindOfClass:[AVURLAsset class]]) {
                         

+ 8 - 1
创维盒子/code/Class/Set/uploadFile/uploadFileManager/backupsFileManager.m

@@ -292,7 +292,13 @@ static backupsFileManager * cur_backupsFileShareInstance = nil;
     KWeakSelf
     if(curAsset.mediaType == PHAssetMediaTypeImage){
         _curPhotosBackupsTaskMod.curUploadFileType = uploadFileTypeImage;
-        [[PHImageManager defaultManager] requestImageDataForAsset:curAsset options:nil resultHandler:^(NSData * _Nullable imageData, NSString * _Nullable dataUTI, UIImageOrientation orientation, NSDictionary * _Nullable info) {
+        
+        PHImageRequestOptions *options = [[PHImageRequestOptions alloc] init];
+        options.networkAccessAllowed = YES; // Allow downloading from iCloud
+        options.version = PHImageRequestOptionsVersionCurrent;
+        options.deliveryMode = PHImageRequestOptionsDeliveryModeHighQualityFormat;
+        
+        [[PHImageManager defaultManager] requestImageDataForAsset:curAsset options:options resultHandler:^(NSData * _Nullable imageData, NSString * _Nullable dataUTI, UIImageOrientation orientation, NSDictionary * _Nullable info) {
                 // 直接得到最终的 NSData 数据
                 if (imageData) {
                     [weakSelf  afterGetImageDataFun:imageData];
@@ -316,6 +322,7 @@ static backupsFileManager * cur_backupsFileShareInstance = nil;
         //真正的视频数据
         PHVideoRequestOptions *options = [[PHVideoRequestOptions alloc] init];
         options.version = PHVideoRequestOptionsVersionOriginal;
+        options.networkAccessAllowed = YES; // Allow downloading from iCloud
         [[PHImageManager defaultManager] requestAVAssetForVideo:curAsset options:options resultHandler:^(AVAsset *asset, AVAudioMix *audioMix, NSDictionary *info) {
             if ([asset isKindOfClass:[AVURLAsset class]]) {
                 

+ 21 - 6
创维盒子/code/Class/Set/uploadFile/uploadFileManager/uploadFileManager.m

@@ -178,8 +178,13 @@ static uploadFileManager * cur_uploadFileShareInstance = nil;
             NSString *imgName1 = [curModel.filename stringByReplacingOccurrencesOfString:@"." withString:@"_"];
             curModel.videoFirstImageName = [[NSString alloc] initWithFormat:@"%@.png",imgName1];
            
+            PHImageRequestOptions *options = [[PHImageRequestOptions alloc] init];
+            options.networkAccessAllowed = YES; // Allow downloading from iCloud
+            options.version = PHImageRequestOptionsVersionCurrent;
+            options.deliveryMode = PHImageRequestOptionsDeliveryModeHighQualityFormat;
+            
             //第一帧图片
-            [[PHImageManager defaultManager] requestImageDataForAsset:curModel.asset options:nil resultHandler:^(NSData * _Nullable imageData, NSString * _Nullable dataUTI, UIImageOrientation orientation, NSDictionary * _Nullable info) {
+            [[PHImageManager defaultManager] requestImageDataForAsset:curModel.asset options:options resultHandler:^(NSData * _Nullable imageData, NSString * _Nullable dataUTI, UIImageOrientation orientation, NSDictionary * _Nullable info) {
                     // 直接得到最终的 NSData 数据
                     if (imageData) {
                         curModel.imageData = imageData;
@@ -354,7 +359,12 @@ static uploadFileManager * cur_uploadFileShareInstance = nil;
     if(_curUploadFileDataModel.curUploadFileType == uploadFileTypeImage)
     {
         if(!_curUploadFileDataModel.imageData || _curUploadFileDataModel.imageData.length == 0){
-            [[PHImageManager defaultManager] requestImageDataForAsset:_curUploadFileDataModel.asset options:nil resultHandler:^(NSData * _Nullable imageData, NSString * _Nullable dataUTI, UIImageOrientation orientation, NSDictionary * _Nullable info) {
+            PHImageRequestOptions *options = [[PHImageRequestOptions alloc] init];
+            options.networkAccessAllowed = YES; // Allow downloading from iCloud
+            options.version = PHImageRequestOptionsVersionCurrent;
+            options.deliveryMode = PHImageRequestOptionsDeliveryModeHighQualityFormat;
+            
+            [[PHImageManager defaultManager] requestImageDataForAsset:_curUploadFileDataModel.asset options:options resultHandler:^(NSData * _Nullable imageData, NSString * _Nullable dataUTI, UIImageOrientation orientation, NSDictionary * _Nullable info) {
                     // 直接得到最终的 NSData 数据
                     if (imageData) {
                         self->_curUploadFileDataModel.imageData = imageData;
@@ -367,9 +377,13 @@ static uploadFileManager * cur_uploadFileShareInstance = nil;
         }
     }
     else if(_curUploadFileDataModel.curUploadFileType == uploadFileTypeVideo){
+        PHImageRequestOptions *options = [[PHImageRequestOptions alloc] init];
+        options.networkAccessAllowed = YES; // Allow downloading from iCloud
+        options.version = PHImageRequestOptionsVersionCurrent;
+        options.deliveryMode = PHImageRequestOptionsDeliveryModeHighQualityFormat;
         
         //第一帧图片
-        [[PHImageManager defaultManager] requestImageDataForAsset:_curUploadFileDataModel.asset options:nil resultHandler:^(NSData * _Nullable imageData, NSString * _Nullable dataUTI, UIImageOrientation orientation, NSDictionary * _Nullable info) {
+        [[PHImageManager defaultManager] requestImageDataForAsset:_curUploadFileDataModel.asset options:options resultHandler:^(NSData * _Nullable imageData, NSString * _Nullable dataUTI, UIImageOrientation orientation, NSDictionary * _Nullable info) {
                 // 直接得到最终的 NSData 数据
                 if (imageData) {
                     self->_curUploadFileDataModel.imageData = imageData;
@@ -378,9 +392,10 @@ static uploadFileManager * cur_uploadFileShareInstance = nil;
         }];
 
         //真正的视频数据
-        PHVideoRequestOptions *options = [[PHVideoRequestOptions alloc] init];
-        options.version = PHVideoRequestOptionsVersionOriginal;
-        [[PHImageManager defaultManager] requestAVAssetForVideo:_curUploadFileDataModel.asset options:options resultHandler:^(AVAsset *asset, AVAudioMix *audioMix, NSDictionary *info) {
+        PHVideoRequestOptions *options2 = [[PHVideoRequestOptions alloc] init];
+        options2.version = PHVideoRequestOptionsVersionOriginal;
+        options2.networkAccessAllowed = YES; // Allow downloading from iCloud
+        [[PHImageManager defaultManager] requestAVAssetForVideo:_curUploadFileDataModel.asset options:options2 resultHandler:^(AVAsset *asset, AVAudioMix *audioMix, NSDictionary *info) {
             if ([asset isKindOfClass:[AVURLAsset class]]) {
                 
                 AVURLAsset* urlAsset = (AVURLAsset*)asset;

+ 12 - 2
创维盒子/code/Class/Set/uploadFile/uploadFileView/uploadFileRecordCell.m

@@ -248,7 +248,12 @@
                     self->_fileImageView.image = [UIImage imageNamed:@"uploadFile_image"];
                 }
                 else{
-                    [[PHImageManager defaultManager] requestImageDataForAsset:curUploadFileDataModel.asset options:nil resultHandler:^(NSData * _Nullable imageData, NSString * _Nullable dataUTI, UIImageOrientation orientation, NSDictionary * _Nullable info) {
+                    PHImageRequestOptions *options = [[PHImageRequestOptions alloc] init];
+                    options.networkAccessAllowed = YES; // Allow downloading from iCloud
+                    options.version = PHImageRequestOptionsVersionCurrent;
+                    options.deliveryMode = PHImageRequestOptionsDeliveryModeHighQualityFormat;
+                    
+                    [[PHImageManager defaultManager] requestImageDataForAsset:curUploadFileDataModel.asset options:options resultHandler:^(NSData * _Nullable imageData, NSString * _Nullable dataUTI, UIImageOrientation orientation, NSDictionary * _Nullable info) {
                             // 直接得到最终的 NSData 数据
                             if (imageData) {
                                 curUploadFileDataModel.imageData = imageData;
@@ -280,7 +285,12 @@
                     curUploadFileDataModel.asset = asset;
                 }
                 
-                [[PHImageManager defaultManager] requestImageDataForAsset:curUploadFileDataModel.asset options:nil resultHandler:^(NSData * _Nullable imageData, NSString * _Nullable dataUTI, UIImageOrientation orientation, NSDictionary * _Nullable info) {
+                PHImageRequestOptions *options = [[PHImageRequestOptions alloc] init];
+                options.networkAccessAllowed = YES; // Allow downloading from iCloud
+                options.version = PHImageRequestOptionsVersionCurrent;
+                options.deliveryMode = PHImageRequestOptionsDeliveryModeHighQualityFormat;
+                
+                [[PHImageManager defaultManager] requestImageDataForAsset:curUploadFileDataModel.asset options:options resultHandler:^(NSData * _Nullable imageData, NSString * _Nullable dataUTI, UIImageOrientation orientation, NSDictionary * _Nullable info) {
                         // 直接得到最终的 NSData 数据
                         if (imageData) {
                             curUploadFileDataModel.imageData = imageData;

+ 7 - 1
创维盒子/code/Class/Set/uploadFile/uploadImageOrVideoViewController.m

@@ -566,7 +566,12 @@
     
     if(!model.totalBytes)
     {
-        [[PHImageManager defaultManager] requestImageDataForAsset:model.asset options:nil resultHandler:^(NSData * _Nullable imageData, NSString * _Nullable dataUTI, UIImageOrientation orientation, NSDictionary * _Nullable info) {
+        PHImageRequestOptions *options = [[PHImageRequestOptions alloc] init];
+        options.networkAccessAllowed = YES; // Allow downloading from iCloud
+        options.version = PHImageRequestOptionsVersionCurrent;
+        options.deliveryMode = PHImageRequestOptionsDeliveryModeHighQualityFormat;
+        
+        [[PHImageManager defaultManager] requestImageDataForAsset:model.asset options:options resultHandler:^(NSData * _Nullable imageData, NSString * _Nullable dataUTI, UIImageOrientation orientation, NSDictionary * _Nullable info) {
                 // 直接得到最终的 NSData 数据
                 if (imageData) {
                     //model.imageData = imageData;
@@ -588,6 +593,7 @@
             
             PHVideoRequestOptions *options = [[PHVideoRequestOptions alloc] init];
             options.version = PHVideoRequestOptionsVersionOriginal;
+            options.networkAccessAllowed = YES; // Allow downloading from iCloud
             [[PHImageManager defaultManager] requestAVAssetForVideo:model.asset options:options resultHandler:^(AVAsset *asset, AVAudioMix *audioMix, NSDictionary *info) {
                 if ([asset isKindOfClass:[AVURLAsset class]]) {
                     

+ 8 - 1
创维盒子/code/NAS/nasBackupsManager/nasBackupsManager.m

@@ -313,7 +313,13 @@
     KWeakSelf
     if(curAsset.mediaType == PHAssetMediaTypeImage){
         _curPhotosBackupsTaskMod.curUploadFileType = uploadFileTypeImage;
-        [[PHImageManager defaultManager] requestImageDataForAsset:curAsset options:nil resultHandler:^(NSData * _Nullable imageData, NSString * _Nullable dataUTI, UIImageOrientation orientation, NSDictionary * _Nullable info) {
+        
+        PHImageRequestOptions *options = [[PHImageRequestOptions alloc] init];
+        options.networkAccessAllowed = YES; // Allow downloading from iCloud
+        options.version = PHImageRequestOptionsVersionCurrent;
+        options.deliveryMode = PHImageRequestOptionsDeliveryModeHighQualityFormat;
+
+        [[PHImageManager defaultManager] requestImageDataForAsset:curAsset options:options resultHandler:^(NSData * _Nullable imageData, NSString * _Nullable dataUTI, UIImageOrientation orientation, NSDictionary * _Nullable info) {
                 // 直接得到最终的 NSData 数据
                 if (imageData) {
                     weakSelf.isGetFileDataFailType = NO;
@@ -339,6 +345,7 @@
         //真正的视频数据
         PHVideoRequestOptions *options = [[PHVideoRequestOptions alloc] init];
         options.version = PHVideoRequestOptionsVersionOriginal;
+        options.networkAccessAllowed = YES; // Allow downloading from iCloud
         [[PHImageManager defaultManager] requestAVAssetForVideo:curAsset options:options resultHandler:^(AVAsset *asset, AVAudioMix *audioMix, NSDictionary *info) {
             if ([asset isKindOfClass:[AVURLAsset class]]) {
                 

+ 7 - 1
创维盒子/code/NAS/nasBackupsManager/nasMixBackupsManager.m

@@ -282,7 +282,12 @@
                     operation.fileModel.asset = asset;
                 }
                 
-                [[PHImageManager defaultManager] requestImageDataForAsset:operation.fileModel.asset options:nil resultHandler:^(NSData * _Nullable imageData, NSString * _Nullable dataUTI, UIImageOrientation orientation, NSDictionary * _Nullable info) {
+                PHImageRequestOptions *options = [[PHImageRequestOptions alloc] init];
+                options.networkAccessAllowed = YES; // Allow downloading from iCloud
+                options.version = PHImageRequestOptionsVersionCurrent;
+                options.deliveryMode = PHImageRequestOptionsDeliveryModeHighQualityFormat;
+                
+                [[PHImageManager defaultManager] requestImageDataForAsset:operation.fileModel.asset options:options resultHandler:^(NSData * _Nullable imageData, NSString * _Nullable dataUTI, UIImageOrientation orientation, NSDictionary * _Nullable info) {
                         // 直接得到最终的 NSData 数据
                         if (imageData) {
                             operation.fileModel.imageData = imageData;
@@ -337,6 +342,7 @@
             //真正的视频数据
             PHVideoRequestOptions *options = [[PHVideoRequestOptions alloc] init];
             options.version = PHVideoRequestOptionsVersionOriginal;
+            options.networkAccessAllowed = YES; // Allow downloading from iCloud
             [[PHImageManager defaultManager] requestAVAssetForVideo:operation.fileModel.asset options:options resultHandler:^(AVAsset *asset, AVAudioMix *audioMix, NSDictionary *info) {
                 if ([asset isKindOfClass:[AVURLAsset class]]) {
                     

+ 7 - 1
创维盒子/code/NAS/nasUploadManager/nasMixUploadManager.m

@@ -359,7 +359,12 @@
                     operation.fileModel.asset = asset;
                 }
                 
-                [[PHImageManager defaultManager] requestImageDataForAsset:operation.fileModel.asset options:nil resultHandler:^(NSData * _Nullable imageData, NSString * _Nullable dataUTI, UIImageOrientation orientation, NSDictionary * _Nullable info) {
+                PHImageRequestOptions *options = [[PHImageRequestOptions alloc] init];
+                options.networkAccessAllowed = YES; // Allow downloading from iCloud
+                options.version = PHImageRequestOptionsVersionCurrent;
+                options.deliveryMode = PHImageRequestOptionsDeliveryModeHighQualityFormat;
+                
+                [[PHImageManager defaultManager] requestImageDataForAsset:operation.fileModel.asset options:options resultHandler:^(NSData * _Nullable imageData, NSString * _Nullable dataUTI, UIImageOrientation orientation, NSDictionary * _Nullable info) {
                         // 直接得到最终的 NSData 数据
                         if (imageData) {
                             operation.fileModel.imageData = imageData;
@@ -420,6 +425,7 @@
             //真正的视频数据
             PHVideoRequestOptions *options = [[PHVideoRequestOptions alloc] init];
             options.version = PHVideoRequestOptionsVersionOriginal;
+            options.networkAccessAllowed = YES; // Allow downloading from iCloud
             [[PHImageManager defaultManager] requestAVAssetForVideo:operation.fileModel.asset options:options resultHandler:^(AVAsset *asset, AVAudioMix *audioMix, NSDictionary *info) {
                 if ([asset isKindOfClass:[AVURLAsset class]]) {
                     

+ 6 - 1
创维盒子/code/NAS/nasUploadManager/nasUploadFileManager.m

@@ -178,8 +178,13 @@
             NSString *imgName1 = [curModel.filename stringByReplacingOccurrencesOfString:@"." withString:@"_"];
             curModel.videoFirstImageName = [[NSString alloc] initWithFormat:@"%@.png",imgName1];
            
+            PHImageRequestOptions *options = [[PHImageRequestOptions alloc] init];
+            options.networkAccessAllowed = YES; // Allow downloading from iCloud
+            options.version = PHImageRequestOptionsVersionCurrent;
+            options.deliveryMode = PHImageRequestOptionsDeliveryModeHighQualityFormat;
+            
             //第一帧图片
-            [[PHImageManager defaultManager] requestImageDataForAsset:curModel.asset options:nil resultHandler:^(NSData * _Nullable imageData, NSString * _Nullable dataUTI, UIImageOrientation orientation, NSDictionary * _Nullable info) {
+            [[PHImageManager defaultManager] requestImageDataForAsset:curModel.asset options:options resultHandler:^(NSData * _Nullable imageData, NSString * _Nullable dataUTI, UIImageOrientation orientation, NSDictionary * _Nullable info) {
                     // 直接得到最终的 NSData 数据
                     if (imageData) {
                         curModel.imageData = imageData;