小编Obj*_*tif的帖子

同步将PHAsset(视频)转换为AVAsset

我需要使用AVAsset对象,以便使用AVPlayer和AVPlayerLayer播放它.我开始使用Photos框架,因为不推荐使用AssetsLibrary.现在我到了我有一个PHAsset对象数组的点,我需要将它们转换为AVAsset.我尝试通过PHFetchResult枚举并使用PHAsset的本地化描述分配新的AVAsset,但是当我播放时它似乎没有显示任何视频.

    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];
    }];
Run Code Online (Sandbox Code Playgroud)

我假设本地化描述不是视频的绝对URL.

我还偶然发现了PHImageManager和requestAVAssetForVideo,但是,当涉及到视频时,options参数没有isSynchrounous属性,image参数就是这种情况.

        PHVideoRequestOptions *option = [PHVideoRequestOptions new];
        [[PHImageManager defaultManager] requestAVAssetForVideo:videoAsset options:option resultHandler:^(AVAsset * _Nullable avasset, AVAudioMix * _Nullable audioMix, NSDictionary * _Nullable info) {
Run Code Online (Sandbox Code Playgroud)

有同步方法吗?

谢谢.

video ios avasset photosframework

11
推荐指数
2
解决办法
1万
查看次数

标签 统计

avasset ×1

ios ×1

photosframework ×1

video ×1