이 방법을 사용하여 (이 질문의 끝) 장치에서 비디오를 검색합니다. 이 작업을 수행하면 라이브러리의 첫 번째 비디오를 찾고 내보내기 세션을 만들고 MOV 파일로 비디오를 내 보냅니다.PhotoKit (PHAsset)를 사용하여 비디오를 내보낼 때마다 서로 다른 비디오 파일을 제공합니다.
두 번의 응용 프로그램 실행 (메서드 실행간에 응용 프로그램 중지) 후에 두 개의 결과 파일이 비교됩니다. 두 파일 모두 다릅니다. 동일한 파일을 내보낼 때 두 파일이 동일 할 것으로 예상했습니다.
한 번 더 언급 : 동일한 응용 프로그램 실행에서 메서드를 두 번 실행하면 두 개의 동일한 파일이 예상 한대로 제공됩니다.
실행될 때마다 동일한 파일을 내보내도록 PhotoKit을 만들 수 있습니까?
- (void)testVideoRetrievalSO {
PHAsset *oneVideo = [[PHAsset fetchAssetsWithMediaType:PHAssetMediaTypeVideo options:nil] firstObject];
PHVideoRequestOptions *options = [[PHVideoRequestOptions alloc] init];
options.networkAccessAllowed = YES;
options.deliveryMode = PHVideoRequestOptionsDeliveryModeHighQualityFormat;
options.version = PHVideoRequestOptionsVersionOriginal;
[[PHImageManager defaultManager] requestExportSessionForVideo:oneVideo
options:options
exportPreset:AVAssetExportPresetPassthrough
resultHandler:
^(AVAssetExportSession * _Nullable exportSession, NSDictionary * _Nullable info) {
NSLog(@"Video test run on asset %@", oneVideo.localIdentifier);
NSString *folderPath = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES).firstObject;
NSString *fileName = [[[NSUUID UUID] UUIDString] stringByAppendingPathExtension:@"mov"];
NSString *tempFile = [folderPath stringByAppendingPathComponent:fileName];
NSURL *tempFileUrl = [NSURL fileURLWithPath:tempFile];
[exportSession setOutputFileType:AVFileTypeQuickTimeMovie];
[exportSession setOutputURL:tempFileUrl];
[exportSession exportAsynchronouslyWithCompletionHandler:^{
NSLog(@"Video test run exported video into file: %@", tempFile);
}];
}];
}
같은 비디오 파일을 얻을 수있는 솔루션을 찾았나요? 나는 또한 그것을하려고하고 내 문제는 비디오의 메타 데이터가 카메라 롤의 메타 데이터와 다르다는 것이다. –
이렇게 할 수없는 것 같습니다. 적어도, 나는 대답을 찾을 수 없었다 – UrK
아래 답변은 어떻습니까? –