2023-01-30 PHAsset 获取视频路径

两种方式:

1.我一开始用的

ps:和注释说的一样 此方法 无法加载iCloud上的视频或者图片

1

2.经过我的研究优化 原格式视频直接导出 最终版本


2

研究了一下午 以此记录,好用点个赞再走!转发请标明出处!!

下面直接cv:

[[PHImageManager defaultManager] requestExportSessionForVideo:model.asset options:[self getVideoRequestOptions] exportPreset:AVAssetExportPresetHighestQuality resultHandler:^(AVAssetExportSession *_Nullable exportSession, NSDictionary *_Nullable info) {

//        NSString *outputPath = [self getVideoOutputPath];

//        exportSession.outputURL = [NSURL fileURLWithPath:outputPath];

//        exportSession.shouldOptimizeForNetworkUse = NO;

//        exportSession.outputFileType = AVFileTypeMPEG4;

//        if (!CMTimeRangeEqual(timeRange, kCMTimeRangeZero)) {

//            exportSession.timeRange = timeRange;

//        }

//        [exportSession exportAsynchronouslyWithCompletionHandler:^{

//            if (success) {

//                success(outputPath);

//            }

//        }];

        AVURLAsset*urlAsset = (AVURLAsset*)exportSession.asset;

        NSURL*url = urlAsset.URL;

        NSLog(@"%@",url);

        NSData *data = [NSData dataWithContentsOfURL:urlAsset.URL];

        NSString*savePath = [selfgetVideoOutputPath:url.pathExtension];

        [datawriteToFile:savePathatomically:YES];

        // 回到主线程

        dispatch_async(dispatch_get_main_queue(), ^{

            // n秒后执行

            dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(3 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{

                // 需要延迟执行的代码

                if(success) {

                    success(savePath);

                }

            });

        });

    }];

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容