ios-视频录制保存

news/2024/11/17 23:54:06/

一般来说,我们应该都会用到这两个功能所以下面就简单的描述下,记录下了,其实我们如果想要去录制视频的话,其实和选择照片是很像的,如下所示,注意的时候下面用到的kUTTypeMovie默认是不识别的,所以我们需要去导入一个框架#import <MobileCoreServices/MobileCoreServices.h>,还有就是我们需要设置mediaTypes为kUTTypeMovie,关于它的解释,我们其实点开kUTTypeMovie里面就能看到下面的解释


//1、判断是否可用if(![UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]){return;}//2、创建图像选择器UIImagePickerController * picker = [UIImagePickerController new];//3、设置类型picker.sourceType = UIImagePickerControllerSourceTypeCamera;//4、设置媒体类型,我们需要用NSString去强转下picker.mediaTypes = @[(NSString *)kUTTypeMovie];//5、设置代理picker.delegate = self;//设置相机的检测模式picker.cameraCaptureMode = UIImagePickerControllerCameraCaptureModeVideo;//设置视频的质量picker.videoQuality = UIImagePickerControllerQualityTypeMedium;//6.模态弹出[self presentViewController:picker animated:YES completion:nil];

我们可以在下面的这个代理方法中拿到我们拍摄的视频,我们可以对他进行读取和保存操作,通过打印info,我们可以得到下面的这两个东西,其中第一个key所对应的value就是kUTTypeMovie的NSString的形式。如下图所示


-(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary<NSString *,id> *)info
{NSLog(@"%@",info);//1、获取媒体的类型 public.movieNSString * mediaType = info[UIImagePickerControllerMediaType];//获取url,然后下面进行播放和保存id url = info[UIImagePickerControllerMediaURL];//判断是否是媒体类型if([mediaType isEqualToString:(NSString *)kUTTypeMovie]){//先去判断控制器是否存在,如果不存在就是创建if(self.playerVC==nil){self.playerVC = [AVPlayerViewController new];self.playerVC.view.frame = self.view.bounds;//CGRectMake(40, 40, 200, 200);[self.view addSubview:self.playerVC.view];[self.playerVC.view addSubview:self.backButton];}//先去用url去创建一个AVPlayer对象AVPlayer * player = [AVPlayer playerWithURL:url];self.playerVC.player = player;}//判断是不是相机类型if(picker.sourceType == UIImagePickerControllerSourceTypeCamera){NSError * error;//去保存视频[[PHPhotoLibrary sharedPhotoLibrary]performChangesAndWait:^{[PHAssetChangeRequest creationRequestForAssetFromVideoAtFileURL:url];} error:&error];}[picker dismissViewControllerAnimated:YES completion:nil];
}
需要注意的是这里我们如果不是去通过modal出来AVPlayerViewController,而是直接把AVPlayerViewController的view加到某个视图上面的,并且是设置全屏显示的那么就不会有Done,如果不是全屏显示就会有Done。如果没有Done的话,我们可以自己去添加一个返回按钮。

-(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary<NSString *,id> *)info
{NSLog(@"%@",info);//1、获取媒体的类型 public.movieNSString * mediaType = info[UIImagePickerControllerMediaType];//获取url,然后下面进行播放和保存id url = info[UIImagePickerControllerMediaURL];//判断是否是媒体类型if([mediaType isEqualToString:(NSString *)kUTTypeMovie]){//先去判断控制器是否存在,如果不存在就是创建if(self.playerVC==nil){self.playerVC = [AVPlayerViewController new];self.playerVC.view.frame = CGRectMake(40, 40, 200, 200);[self.view addSubview:self.playerVC.view];[self.playerVC.view addSubview:self.backButton];}//先去用url去创建一个AVPlayer对象AVPlayer * player = [AVPlayer playerWithURL:url];self.playerVC.player = player;}//判断是不是相机类型if(picker.sourceType == UIImagePickerControllerSourceTypeCamera){NSError * error;//去保存视频[[PHPhotoLibrary sharedPhotoLibrary]performChangesAndWait:^{[PHAssetChangeRequest creationRequestForAssetFromVideoAtFileURL:url];} error:&error];}[picker dismissViewControllerAnimated:YES completion:nil];
}





http://www.ppmy.cn/news/675264.html

相关文章

iOS 保存图片或视频到PhotoLibrary

存储图片到photo library与存储video到photo library的API差不多&#xff0c;但也有所不同。图片是可以直接把数据写入photo library&#xff0c;而video需要先把数据存到临时文件然后&#xff0c;然后通过临时文件的路径去转存到photo library。 我们直接来看相应的API&#…

uniapp - 【全端兼容】实现保存视频到手机相册功能,将 mp4 在线视频下载并存储到用户的手机中,uniapp App h5 小程序将视频文件下载保存(详细示例源码及注释一键复制,开箱即用!)

效果图 在uniapp开发中,实现安卓苹果app、h5网页网站、小程序保存视频到相册功能,点击保存按钮后下载视频并将其存储到用户的手机相册中,完整示例源码及注释,新手小白开箱即用! 直接复制代码,稍微改下就能用到你的项目中去了(保证可用)。 完整代码 可复制运行,或按…

iOS保存视频到相册

保存视频&#xff1a; 1在工程中添加这个框架&#xff1a; #import <AssetsLibrary/AssetsLibrary.h> 2 NSBundle *bundle[NSBundle mainBundle];NSString *videoPath[bundle pathForResource:"test" ofType:"mp4"];//是本地的路径就好videoPath是你…

IOS 录制保存视频实例

作者&#xff1a;朱克锋 邮箱&#xff1a;zhukefengiboxpay.com 转载请注明出处&#xff1a;http://blog.csdn.net/linux_zkf //保存 - (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info { NSURL *url …

iOS视频下载并保存到相册

https://www.jianshu.com/p/bd2379b6b907

如何用手机保存APP上的视频

前言 很多时候我们在看微博、网易云等手机APP上的视频时&#xff0c;因为内容非常有意义&#xff0c;所以想要保存到手机中&#xff0c;但是发现这些app上都没有这样的功能&#xff01;这可怎么办呢&#xff1f; 很多人因为不会保存而盯着视频&#xff0c;看了半天却不想退出&…

Jmeter远程服务模式运行时引用csv文件的路径配置

目录 前言&#xff1a; 问题 解决方法 前言&#xff1a; 在JMeter远程服务模式下运行时&#xff0c;你可以通过配置CSV文件的路径来引用该文件。CSV文件经常用于存储测试数据&#xff0c;可以在测试中进行参数化。 问题 在使用jmeter过程中&#xff0c;本机的内存等配置不…

SpringMVC 集成 Swagger2

目录 POM SwaggerConfig SwaggerUI Spring 5 Swagger2 POM <dependency><groupId> io.springfox </groupId><artifactId>springfox-swagger2</artifactId><version>2.9.2</version> </dependency> <dependency><…