2017-03-02 4 views
0

이 코드는 처음 제대로 작동합니다.PHImageManager requestAVAssetForVideo가 두 번째부터 nil을 받음

PHVideoRequestOptions *options = [[PHVideoRequestOptions alloc]init]; 
     options.version = PHVideoRequestOptionsVersionCurrent; 
     options.deliveryMode = PHVideoRequestOptionsDeliveryModeAutomatic; 
     options.networkAccessAllowed = YES; 
     [[PHImageManager defaultManager] requestAVAssetForVideo:self.phAsset options:nil resultHandler:^(AVAsset * _Nullable asset, AVAudioMix * _Nullable audioMix, NSDictionary * _Nullable info) { 
      dispatch_async(dispatch_get_main_queue(), ^{ 
       AVURLAsset *urlAsset = (AVURLAsset*)asset; 
       NSURL *url = urlAsset.URL; 
       completionHandler(url); 
      }); 
     }]; 

두 번째 이후로 'asset'및 'audioMix'가 0으로 표시됩니다.

{ 
    PHImageResultDeliveredImageFormatKey = 0; 
    PHImageResultIsInCloudKey = 0; 
    PHImageResultWantedImageFormatKey = 20002; 
} 

참고를 다음과 같이 '정보'는 것입니다 : 그것은 '사진' 응용 프로그램에서 동일한 비디오를 재생할 수없는 일 후.

내가 아래 URL을 얻고, 위의 코드를 사용 (만 두 번째 이후 처음으로이 URL이된다 전무)

파일 : /// 사용자/OD-1007/도서관 내가 UIImagePickerController를 사용할 때 /Developer/CoreSimulator/Devices/66C92D6B-B528-40A4-A238-FC8C664E3774/data/Media/DCIM/100APPLE/IMG_0011.mp4

, 그것은 완벽하게 작동하고, URL을

입니다

파일// Users/OD-1007/라이브러리/개발자/CoreSimulator/장치/66C92D6B-B528-40A4-A238-FC8C664E3774/data/컨테이너/데이터/응용 프로그램/35B00947-04A4-4906-8E16-21FB4FF5A3F5/tmp /trim.74E42978-8B87-4C37-9B4C-8B70122A794F.MOV

답변

0

귀하의 요청에 대한 문제는 사과 사진이 iCloud와 동기화되지 않는다고 생각합니다. PHVideoRequestOptionsVersionCurrent가 문서화되지 않은 이유로 작동하지 않습니다. 버전을 전환하면

PHVideoRequestOptionsVersionOriginal 

으로 변경해야합니다. 그게 문제를 일으키는 원인이었습니다. 제 경우에는, 그리고 저를 위해 고쳐진 것이 었습니다.

PHVideoRequestOptions *options = [[PHVideoRequestOptions alloc]init]; 
options.version = PHVideoRequestOptionsVersionOriginal; 
options.deliveryMode = PHVideoRequestOptionsDeliveryModeAutomatic; 
options.networkAccessAllowed = YES; 
[[PHImageManager defaultManager] requestAVAssetForVideo:self.phAsset options:options resultHandler:^(AVAsset * _Nullable asset, AVAudioMix * _Nullable audioMix, NSDictionary * _Nullable info) { 
     dispatch_async(dispatch_get_main_queue(), ^{ 
      AVURLAsset *urlAsset = (AVURLAsset*)asset; 
      NSURL *url = urlAsset.URL; 
      completionHandler(url); 
     }); 
    }]; 

편집 :. 요청 옵션이 전달되지

HTH,