如何从iOS中的实时照片中获取视频

如何从iOS中的实时照片中获取视频,第1张

概述我想弄清楚,但找不到任何有用的信息. 我才发现这个: PHAssetResourceManager.defaultManager().writeDataForAssetResource(assetRes, toFile: fileURL, options: nil, completionHandler: { // Video file has been written to path 我想弄清楚,但找不到任何有用的信息.
我才发现这个:
PHAssetResourceManager.defaultManager().writeDataForAssetResource(assetRes,tofile: fileURL,options: nil,completionHandler: {     // VIDeo file has been written to path specifIEd via fileURL}

但我很惭愧地说我不知道​​怎么玩它.
我创建了一个UIImagePickerController,并从相机胶卷中加载了一个Image.

解决方法 使用此代码从实时片中获取视频:
- (voID)vIDeoUrlForlivePhotoAsset:(PHAsset*)asset withCompletionBlock:(voID (^)(NSURL* url))completionBlock{    if([asset isKindOfClass:[PHAsset class]]){        Nsstring* IDentifIEr = [(PHAsset*)asset localIDentifIEr];        Nsstring* filePath = [NstemporaryDirectory() stringByAppendingPathComponent:[Nsstring stringWithFormat:@"%@.mov",[Nsstring stringWithFormat:@"%.0f",[[NSDate date] timeIntervalSince1970]]]];        NSURL *fileUrl = [NSURL fileURLWithPath:filePath];        PHlivePhotoRequestoptions* options = [PHlivePhotoRequestoptions new];        options.deliveryMode = PHImageRequestoptionsDeliveryModeFastFormat;        options.networkAccessAllowed = YES;        [[PHImageManager defaultManager] requestlivePhotoForAsset:asset targetSize:[UIScreen mainScreen].bounds.size contentMode:PHImageContentModeDefault options:options resultHandler:^(PHlivePhoto * _Nullable livePhoto,NSDictionary * _Nullable info) {            if(livePhoto){                NSArray* assetResources = [PHAssetResource assetResourcesForlivePhoto:livePhoto];                PHAssetResource* vIDeoResource = nil;                for(PHAssetResource* resource in assetResources){                    if (resource.type == PHAssetResourceTypePairedVIDeo) {                        vIDeoResource = resource;                        break;                    }                }                if(vIDeoResource){                    [[PHAssetResourceManager defaultManager] writeDataForAssetResource:vIDeoResource tofile:fileUrl options:nil completionHandler:^(NSError * _Nullable error) {                        if(!error){                            completionBlock(fileUrl);                        }else{                            completionBlock(nil);                        }                    }];                }else{                    completionBlock(nil);                }            }else{                completionBlock(nil);            }        }];    }else{        completionBlock(nil);    }}

基本上您需要做的是首先需要从PHAsset中获取PHlivePhoto对象.之后,您将必须遍历实时照片中的所有资源资源,并检查它是否为PHAssetResourceTypePairedVIDeo类型.

如果是的话,你收到了你的视频.现在,您需要将其保存到某个临时目录中,就像我在此处所做的那样,并将此文件用于您可能拥有的任何目的.

要播放此视频,您可以使用以下代码:

NSURL *vIDeoURL = [NSURL fileURLWithPath:fileUrl];AVPlayer *player = [AVPlayer playerWithURL:vIDeoURL];AVPlayerVIEwController *playerVIEwController = [AVPlayerVIEwController new];playerVIEwController.player = player;[self presentVIEwController:playerVIEwController animated:YES completion:nil];

如果您需要任何澄清,请随时询问.

P.S.-我在这个方法中做了一些更改,以删除我的应用程序代码的依赖性,因此上面的代码未经测试,但我觉得它应该按预期工作.

总结

以上是内存溢出为你收集整理的如何从iOS中的实时照片中获取视频全部内容,希望文章能够帮你解决如何从iOS中的实时照片中获取视频所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1107612.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-28
下一篇 2022-05-28

发表评论

登录后才能评论

评论列表(0条)

保存