专栏首页用户4669341的专栏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中有多种方式可以实现视频播放功能:MPMoviePlayerController、MPMoviePlayerViewController、AVPlayer...

    布谷鸟网络科技
  • 安卓开发:玩转图片社交系统-仿探探卡片式滑动效果

    第一次进入探探软件界面,就被这种通过卡片式滑动来选择“喜欢/不喜欢”的设计所吸引了。当时就非常想通过自己来实现这种仿探探式的效果,然而却没什么思路。不过毋庸置疑...

    布谷鸟网络科技
  • IOS 下实现一对一直播平台系统 libRtmp 推拉流

    今天向大家介绍一下如何使用 librtmp 库推拉音视频直播流。虽然Adobe已经宣布不在维护 flash 了,但 flash使用的 rtmp 协议目前仍然是直...

    布谷鸟网络科技
  • 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

扫码关注云+社区

领取腾讯云代金券