Ios PHImageManager请求视频的AssetForVideo从第二次获得零
此代码首次正常工作Ios PHImageManager请求视频的AssetForVideo从第二次获得零,ios,objective-c,phasset,Ios,Objective C,Phasset,此代码首次正常工作 PHVideoRequestOptions *options = [[PHVideoRequestOptions alloc]init]; options.version = PHVideoRequestOptionsVersionCurrent; options.deliveryMode = PHVideoRequestOptionsDeliveryModeAutomatic; options.networkAccessAll
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);
});
}];
从第二次开始,我得到的“资产”和“音频混音”为零。
“信息”如下
{
PHImageResultDeliveredImageFormatKey = 0;
PHImageResultIsInCloudKey = 0;
PHImageResultWantedImageFormatKey = 20002;
}
注意:发生后无法播放来自“照片”的相同视频
应用程序
当我使用上面的代码时,我得到的URL如下(仅第一次,第二次以后,URL变为零)
file:///Users/OD-1007/Library/Developer/CoreSimulator/Devices/66C92D6B-B528-40A4-A238-FC8C664E3774/data/Media/DCIM/100APPLE/IMG_0011.mp4
当我使用UIImagePickerController时,它工作得非常好,url是
file:///Users/OD-1007/Library/Developer/CoreSimulator/Devices/66C92D6B-B528-40A4-A238-FC8C664E3774/data/Containers/Data/Application/35B00947-04A4-4906-8E16-21FB4FF5A3F5/tmp/trim.74E42978-8B87-4C37-9B4C-8B70122A794F.MOV
我认为您的请求的问题是apple Photo没有同步到iCloud。这使得phvideorequestoptionversioncurrent由于一些未记录的原因无法工作。如果将版本切换到:
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);
});
}];
编辑:未传入请求选项
嗯,我认为您的请求的问题是apple Photo没有同步到iCloud。这使得phvideorequestoptionversioncurrent由于一些未记录的原因无法工作。如果将版本切换到:
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);
});
}];
编辑:未传入请求选项
嗯,