专栏首页布谷科技ios开发:关于一对一直播源码中视频录制切换前后摄像头后方向错误解决办法
原创

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

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

//视频连接

- (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;
}

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

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

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 直播源码开发搭建过程中的重要功能

    在互联网的大环境下,直播源码系统拥有可以开放和共享的特性,但是这并不代表着可以任意盗用用户的优质内容。而为了保护直播用户的权益和利益,防盗链机制是必不可少的。不...

    布谷安妮
  • 直播系统开发后端是前端功能实现的基础

    直播的热潮还未褪去,使得直播系统开发行业持续发展,一套完整的直播系统包括安卓端,iOS端以及后端设置,后端是前端功能实现的基础,那么后端都应该有哪些功能呢?

    布谷安妮
  • 直播软件开发过程中如何提高直播源码的安全性?

    在互联网技术的大环境下,直播软件开发有着能够对外开放和共享资源的特点,可是这并不是意味着着能够随意盗取客户的高品质内容。以便维护直播间客户的利益和权益,防盗链体...

    布谷安妮
  • IOS开发:一对一直播系统中视频录制切换前后摄像头后方向错误解决办法

    最近发现项目里,切换前后摄像头几次之后,会出现录制的视频方向上下颠倒,可是明明已经在切换摄像头后,给videoconnection重新设置了录制方向,我项目视频...

    布谷鸟网络科技
  • 详解文本分类之DeepCNN的理论与实践

    最近在梳理文本分类的各个神经网络算法,特地一个来总结下。下面目录中多通道卷积已经讲过了,下面是链接,没看的可以瞅瞅。我会一个一个的讲解各个算法的理论与实践。目录...

    zenRRan
  • python pyqt5 按钮 QRadioButton 常用

    import sys from PyQt5.QtCore import * from PyQt5.QtGui import * from PyQt5.Qt...

    用户5760343
  • python pyqt5 按钮 QCheckBox 常用

    import sys from PyQt5.QtCore import * from PyQt5.QtGui import * from PyQt5.Qt...

    用户5760343
  • Python操作Mysql数据库的实现

    1、需要使用的模块MySQLdb,下载地址为:http://sourceforge.net/projects/mysql-python/

    py3study
  • Python3 串口两进程同时读写

    py3study
  • python日志

    py3study

扫码关注云+社区

领取腾讯云代金券