Преобразование PHAsset (видео) в AVAsset, синхронно
Мне нужно использовать объект AVAsset, чтобы воспроизвести его с помощью AVPlayer и AVPlayerLayer. Я начал использовать фреймворк Photos, так как AssetsLibrary устарела. Теперь я дошел до того, что у меня есть массив объектов PHAsset, и мне нужно преобразовать их в AVAsset. Я попытался перечислить через PHFetchResult и выделить новый AVAsset, используя локализованное описание PHAsset, но, похоже, при воспроизведении он не показывает никакого видео.
PHAssetCollection *assetColl = [self scaryVideosAlbum];
PHFetchResult *getVideos = [PHAsset fetchAssetsInAssetCollection:assetColl options:nil];
[getVideos enumerateObjectsUsingBlock:^(PHAsset *asset, NSUInteger idx, BOOL *stop) {
NSURL *videoUrl = [NSURL URLWithString:asset.localizedDescription];
AVAsset *avasset = [AVAsset assetWithURL:videoUrl];
[tempArr addObject:avasset];
}];
Я предполагаю, что локализованное описание не является абсолютным URL видео.
Я также наткнулся на PHImageManager и requestAVAssetForVideo, однако параметр options, когда дело касается видео, не имеет свойства isSynchrounous, как в случае с параметром параметров изображения.
PHVideoRequestOptions *option = [PHVideoRequestOptions new];
[[PHImageManager defaultManager] requestAVAssetForVideo:videoAsset options:option resultHandler:^(AVAsset * _Nullable avasset, AVAudioMix * _Nullable audioMix, NSDictionary * _Nullable info) {
Есть ли синхронный способ сделать это?
Благодарю.