您的位置:首页 > 移动开发 > IOS开发

IOS 使用容联视频时隐藏本地视频,不让对方看到自己

2016-05-26 11:36 351 查看
版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。 本文链接:https://blog.csdn.net/baolong328683/article/details/51505770

在使用容联的时候SDK没有提供方法进行隐藏本地视频,不让对方看到自己的API,
他们视频数据传输的方法写在了SDK里面,在SDK外我们没办法修改数据的传输方式。
那么怎么来完成这个功能呢,尝试过的方法有:
尝试方法1:根据他们说的隐藏本地view
API:

/**
@brief 设置视频通话显示的view
@param view 对方显示视图
@param localView 本地显示视图
*/
- (NSInteger)setVideoView:(UIView*)view andLocalView:(UIView*)localView;

修改:

[[ECDevice sharedInstance].VoIPManager setVideoView:remoteVideoView andLocalView:localVideoView];

修改成:

localVideoView.hidden = YES;
[[ECDevice sharedInstance].VoIPManager setVideoView:remoteVideoView andLocalView:localVideoView];

或:

[[ECDevice sharedInstance].VoIPManager setVideoView:remoteVideoView andLocalView:nil];

结果:
根据他们的提示进行修改成上面的两种方式,结果是不能实现对方看不到自己的,因为localView是视图控件和视频时数据传输没有关系的,所以这种方法是不能实现对方看不到自己的功能。

尝试方法2:修改视频传输时的帧率
API:

/**
@brief 选择使用的摄像设备
@param cameraIndex 设备index
@param capabilityIndex 能力index
@param fps 帧率
@param rotate 旋转的角度
*/
- (NSInteger)selectCamera:(NSInteger)cameraIndex capability:(NSInteger)capabilityIndex fps:(NSInteger)fps rotate:(ECRotate)rotate;

修改:

[[ECDevice sharedInstance].VoIPManager selectCamera:0 capability:0 fps:0 rotate:Rotate_0];

让帧率设置为0或-1等操作
结果:不能实现对方看不到自己的功能。
尝试方法3:关闭系统摄像头
方法:

AVCaptureSession *captureSession = [[AVCaptureSession alloc] init];
[captureSession stopRunning];

结果:不能实现。
等等,尝试几种处理方式都没能成功。

最后的解决方案是:
当点击关闭摄像头按钮的时候发一个文本消息给对方,当文本是“close“文本表示关闭“open“表示打开,当对方接受到这个消息的时候让视频聊天中的对方视图界面显示为黑色。
在聊天界面数据显示的时候 当发现是close火open 的时候不现实这些文本。
这个文本可以加一些特殊标示,这样能更好的区分是不是关闭摄像头功能的文本消息。
我们公司在使用的过程中 安卓是可以伪实现关闭摄像头不让对方看到自己的方法的,实现方式是摄像头true 和false 的方式,但是IOS是不能实现的,所以需要安卓的一个协同开发,来实现关闭摄像对方看不到自己的功能。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐