前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >ios开发:关于一对一直播源码中视频录制切换前后摄像头后方向错误解决办法

ios开发:关于一对一直播源码中视频录制切换前后摄像头后方向错误解决办法

原创
作者头像
布谷安妮
修改2019-03-25 11:23:03
9090
修改2019-03-25 11:23:03
举报
文章被收录于专栏:布谷科技

最近发现项目里,一对一直播源码切换前后摄像头几次之后,会出现录制的视频方向上下颠倒,可是明明已经在切换一对一直播系统摄像头后,给videoconnection重新设置了录制方向,我项目视频录制固定为横屏录制,所以每次切换摄像头都执行了以下方法self.videoConnection.videoOrientation=AVCaptureVideoOrientationLandscapeRight;摸索了两天,才发现了bug所在,是因为videoConnection 采用了懒加载,切换摄像头后并没有重新初始化,所以才让设置没有生效。解决办法很简单,重写懒加载,直接改为每次都重新初始化。

代码语言:javascript
复制
//视频连接

- (AVCaptureConnection*)videoConnection {
_videoConnection= [self.videoOutputconnectionWithMediaType:AVMediaTypeVideo];
return_videoConnection;
}
最后附上摄像头前后切换的代码
//切换前后置摄像头

- (void)changeCameraInputDeviceisFront:(BOOL)isFront {
if(isFront) {
//改变会话的配置前一定要先开启配置,配置完成后提交配置改变
[self.recordSessionstopRunning];
[self.recordSessionbeginConfiguration];
[self.recordSessionremoveInput:self.backCameraInput];
if([self.recordSessioncanAddInput:self.frontCameraInput]) {
[selfchangeCameraAnimation];
[self.recordSessionaddInput:self.frontCameraInput];
//提交会话配置
[self.recordSessioncommitConfiguration];
}
}else{
[self.recordSessionstopRunning];
[self.recordSessionbeginConfiguration];
[self.recordSessionremoveInput:self.frontCameraInput];
if([self.recordSessioncanAddInput:self.backCameraInput]) {
[selfchangeCameraAnimation];
[self.recordSessionaddInput:self.backCameraInput];
[self.recordSessioncommitConfiguration];
}}}
//后置摄像头输入

- (AVCaptureDeviceInput*)backCameraInput {
if(_backCameraInput==nil) {
NSError*error;
_backCameraInput= [[AVCaptureDeviceInputalloc]initWithDevice:[selfbackCamera]error:&error];
if(error) {
NSLog(@"获取后置摄像头失败~");
}
}
return_backCameraInput;
}
//前置摄像头输入
- (AVCaptureDeviceInput*)frontCameraInput {
if(_frontCameraInput==nil) {
NSError*error;
_frontCameraInput= [[AVCaptureDeviceInputalloc]initWithDevice:[selffrontCamera]error:&error];
if(error) {
NSLog(@"获取前置摄像头失败~");
}
}
return_frontCameraInput;
}

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云直播
云直播(Cloud Streaming Services,CSS)为您提供极速、稳定、专业的云端直播处理服务,根据业务的不同直播场景需求,云直播提供了标准直播、快直播、云导播台三种服务,分别针对大规模实时观看、超低延时直播、便捷云端导播的场景,配合腾讯云视立方·直播 SDK,为您提供一站式的音视频直播解决方案。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档