关于环信1v1视频通话对方关闭/开启摄像头的处理

昨天到今天处理一个环信视频通话的问题,过程很痛苦,所以写下解决方法mark一下。
问题:用环信做1v1视频通话,通话过程中对方关闭了摄像头,我这边的对方视频图像应该是变黑的,安卓没问题,但ios没有变黑,而是卡在最后一帧不动了。
解决方法:找到对方关闭摄像头时我方收到的通知,创建一个黑色的view覆盖在对方的视频view上就可以了。
1.环信账号登录成功后,需要进行音视频通话功能的初始化,设置监听类


D9114B98-C33B-4347-A7F9-00D393901F5B.png
[[EMClient sharedClient].callManager addDelegate:self delegateQueue:nil];

2.这里遵循的协议是:EMCallManagerDelegate
这个协议代理的方法有很多,而对方关闭/开启了摄像头,我们在这里收到消息:


96A1A991-6838-403A-B2EC-910692432E1D.png

3.收到消息后我们就可以进行其他操作了

- (void)callStateDidChange:(EMCallSession *)aSession
                      type:(EMCallStreamingStatus)aStatus
{
    
    if (aSession.type == EMCallTypeVideo) {
        NSLog(@"实时视频");
        if (aStatus == EMCallStreamStatusVideoPause) {
            NSLog(@"中断视频");
            //这里实现的是在对方的视频view上加一个黑色遮罩
            [self.currentController isOpenBlackView:YES];
            
        }else if(aStatus == EMCallStreamStatusVideoResume){
            NSLog(@"继续视频");
            [self.currentController isOpenBlackView:NO];
        }
    }
    if ([aSession.callId isEqualToString:self.currentCall.callId]) {
        [self.currentController updateStreamingStatus:aStatus];
    }
}
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容