博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
iOS 中正确切换摄像头&正确实现设置帧率的方式
阅读量:6910 次
发布时间:2019-06-27

本文共 1431 字,大约阅读时间需要 4 分钟。

以前编写【魔拍】应用的时候,发现一个问题,设置相机按每秒20帧的速度输出视频。开始时一切正常,但是切换摄像头后,帧率就变成动态的了且小于20帧/s。解决方式:

[_captureSession stopRunning];        [_captureSession beginConfiguration];                [_captureSession removeInput:videoInput];        if ([_captureSession canAddInput:newVideoInput]){            videoInput = newVideoInput;            [_captureSession addInput:videoInput];        }                [self setFrameRate];                [_captureSession commitConfiguration];        [_captureSession startRunning];
1 -(void) setFrameRate; 2 { 3      4     float rate = currentCameraPosition == 1 ? 20 : 30; 5      6     if ([_inputCamera respondsToSelector:@selector(activeVideoMinFrameDuration)]) { 7         [_inputCamera lockForConfiguration:nil]; 8         _inputCamera.activeVideoMinFrameDuration = CMTimeMake(1, rate); 9         _inputCamera.activeVideoMaxFrameDuration = CMTimeMake(1, rate);10         [_inputCamera unlockForConfiguration];11         12     }else{13         AVCaptureConnection *conn = [[_captureSession.outputs lastObject] connectionWithMediaType:AVMediaTypeVideo];14         if (conn.supportsVideoMinFrameDuration)15             conn.videoMinFrameDuration = CMTimeMake(1,rate);16         if (conn.supportsVideoMaxFrameDuration)17             conn.videoMaxFrameDuration = CMTimeMake(1,rate);18         19     }20 }

Tips: 在切换摄像头的时候Stop Seesion,然后重新设置FrameRate,最后重新Run Seesion。

转载于:https://www.cnblogs.com/junay/p/3302211.html

你可能感兴趣的文章
机器学习算法一览图
查看>>
识别出脸部以及给脸部打马赛克
查看>>
[转载]git 忽略某些文件
查看>>
jQuery 效果 - 隐藏和显示
查看>>
正则表达式的使用
查看>>
Android复制iPhone日期和时间选择器
查看>>
[C语言]进阶|指针与字符串
查看>>
检测ORACLE方法汇总数据块损坏
查看>>
Binary Tree Maximum Path Sum [leetcode] dp
查看>>
Xamarin.Android开发实践(八)
查看>>
JSON 常用数据转换
查看>>
MongoDB系列一(索引及C#如何操作MongoDB)
查看>>
解决Android SDK下载和更新失败的方法(Win系统) 和离线安装
查看>>
解决eclipse+MAVEN提示One or more constraints have not been satisfied.的问题
查看>>
nginx主配置文件 在那找怎么打开
查看>>
Android:Intent
查看>>
C++标准转换运算符const_cast
查看>>
【Cocos2d-x】Mac 在 Cocos2d-x 3.X 打包Android
查看>>
测试计划与测试方案的区别
查看>>
Hadoop 读取文件API报错
查看>>