PhimageManager requestAvassetforvideo从第二次获得零



此代码首次正常工作。

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);
            });
        }];

从第二次开始,我将获得"资产"one_answers" AudioMix"为零。"信息"如下

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

注意:发生后无法从"照片"中播放相同的视频 应用程序。

当我使用上述代码时,正在获得以下URL(仅第一次,第二次,URL变为零)

file:///users/od-1007/library/developer/coresimulator/devices/66c92d6b-b528-40a4-40a4-a238-fc8c664e37774/data/data/media/media/dcim/dcim/100apple/img_0011.mmg_mg_mp4

当我使用uiimagePickerController时,它可以很好地工作,并且URL为

file:///用户/od-1007/library/developer/coreSimulator/devices/66c92d6b-b528-40a4-a238-a238-fc8c664e3774/data/data/data/data/data/data/application/application/application/application/application/application/application inTMP/TRIM.74E42978-8B87-4C37-9B4C-8B70122A794F.MOV

我认为您请求的问题是Apple照片不是同步到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,

最新更新