iOS 环信视频通话的二次封装

2017-11-24  本文已影响21人  Ezward_Chou

最近因为有需要,所以研究了一下环信视频通话.我接到的任务就是封装成一个view,通过这个view来完成所有的操作.包括打电话,接电话,挂断,代理方法等一系列操作.

而我在网上各个平台搜刮了很多关于环信视频通话的内容,都是直接拿官方demo的文件直接用.这跟我的需求相去甚远,需要将官方的代码进行大量的剔除,在爬坑了许久之后终于有了一个比较好的结果.下面来介绍我所集成的这个view.

真的真的真的非常简单.

有关于SDK如何导入,以及相关库的配置我就免了,我最后提供的Demo是完整的,直接进入正题.

1.基本的设计

我设计的是一个view,其中暴露在外部的属性只有3个,分别是代理对象,当前的Session,以及自己画面的frame.

h文件中的属性

如果还需要其他属性,可自己重写公开.

公开的方法只有简单的拨打,接听,挂断,隐藏自己视图等方法.

h文件中的公开方法

2.实现

首先要进行init方法的重写.

init

这里面有一个非常重要的地方需要解释,就是实时通话的代理注册.你需要注册两个代理,一个是callManager,另一个是chatManager.其中callManager的添加是我看官方文档说要添加的,第二个chatManager是我自己实验后证实需要添加的,不然会得不到来电提醒.

接着是发起视频通话的部分

发起通话

这里是发起通话的方法.在发起成功之后,需要初始化相应的对方的图像视图以及自己的图像视图.需要先进行OutputAudioPort的设置,这样摄像头才能捕捉画面.

在挂断的时候进行相应对象的移除以及OutputAudioPort的设置,这样一整个流程就完毕了.

挂断通话

下面总结一下整个通话的过程.A发起通话,执行拨打方法,然后进行相关视图的初始化.这时候B收到代理方法的执行,进行自己这方视图的初始化.

说明:

    1.我这个demo是非常粗糙的实现了基本的功能,至于其他视图方面的精细的设置就没有多管理.可能还有一些通话的逻辑没有修补完整.

    2.如果要拨打语音通话,可以修改拨打的方法,添加通话类型的参数.如果是那样,那么OutputAudioPort就不需要在设置了.

    

Demo地址:https://github.com/zysmmy/Huanxin

上一篇下一篇

猜你喜欢

热点阅读