iOS 中正确切换摄像头&正确实现设置帧率的方式
2013-09-04 22:14
453 查看
以前编写【魔拍】应用的时候,发现一个问题,设置相机按每秒20帧的速度输出视频。开始时一切正常,但是切换摄像头后,帧率就变成动态的了且小于20帧/s。解决方式:
Tips: 在切换摄像头的时候Stop Seesion,然后重新设置FrameRate,最后重新Run Seesion。
[_captureSession stopRunning]; [_captureSession beginConfiguration]; [_captureSession removeInput:videoInput]; if ([_captureSession canAddInput:newVideoInput]){ videoInput = newVideoInput; [_captureSession addInput:videoInput]; } [self setFrameRate]; [_captureSession commitConfiguration]; [_captureSession startRunning];
-(void) setFrameRate; { float rate = currentCameraPosition == 1 ? 20 : 30; if ([_inputCamera respondsToSelector:@selector(activeVideoMinFrameDuration)]) { [_inputCamera lockForConfiguration:nil]; _inputCamera.activeVideoMinFrameDuration = CMTimeMake(1, rate); _inputCamera.activeVideoMaxFrameDuration = CMTimeMake(1, rate); [_inputCamera unlockForConfiguration]; }else{ AVCaptureConnection *conn = [[_captureSession.outputs lastObject] connectionWithMediaType:AVMediaTypeVideo]; if (conn.supportsVideoMinFrameDuration) conn.videoMinFrameDuration = CMTimeMake(1,rate); if (conn.supportsVideoMaxFrameDuration) conn.videoMaxFrameDuration = CMTimeMake(1,rate); } }
Tips: 在切换摄像头的时候Stop Seesion,然后重新设置FrameRate,最后重新Run Seesion。
相关文章推荐
- Android横竖屏切换正确实现方式
- iOS 实现简单的界面切换
- iOS页面切换动画实现方式。
- iOS-提示框的正确实现方式(iOS9)
- iOS UITextView设置边距的正确方式
- iOS实现切换摄像头
- ios给view设置背景颜色的正确方式
- ios-单例模式饿汉式&GCD&懒汉式&宏方式的实现和条件编译
- iOS- 网络访问两种常用方式【GET & POST】实现的几个主要步骤
- 实现自定义数据存入 UserDefaults [iOS Swift] NSKeyedArchive & UserDefaults
- iOS项目开发实战——实现视图切换动画
- button在底部的多个view切换<实例三触摸和点击实现3D切换>
- DataGridView分页功能的实现<纯手动方式>
- iOS中并发编程的实现方式及各种方式的比较
- IOS内嵌H5页面实现(JS实现图片正常显示,并正确返回文档的高度)
- IOS判断应用是否第一次打开&UIScrollView实现新应用第一打开欢迎介绍页面
- iOS自定义按钮实现个性设置
- 利用设置 还原sigaction和sigprocmask方式实现alarm函数。
- LINQ to Entities 实现sql 关键字"In"方式总结
- iOS开发之实现图片自动切换(类似android画廊效果)