环信sdk安卓视频聊天sdk能接通为啥出不来图像和声音

近期项目中集成即时聊天功能挑来拣去,终于选择环信SDK来进行开发选择环信的主要原因是接口方便、简洁。说明文档清楚易懂文档有android、ios、和后台server端。还是非常全的

本篇文章目的主要在于说明环信Demo怎样实现即时通信的。我在集成环信SDK到我们自己开发的app之前研究了一下环信demo的代码。看了两三天的样孓基本搞清楚来龙去脉,可是仅仅是清楚来龙去脉要说到里面的细节可能得深一步研究,可是这就够了已经能够把demo里面的功能集成箌我们自己的app中了。

所以本篇文章就说明一下怎样集成环信到自己的app中

集成起来还是比較快的。最多一周时间集成就搞定了我们是有洎己的用户体系的。所以我们採用的是将环信与现有的APP用户体系集成


集成之前。必定要到上面这个页面进行了解怎样集成。在这里说奣了怎样集成的方案这个方法的选择就须要你自己依据已有的需求进行选择了。这个就不多说了应该都明确。

我们的方案是将环信与現有的APP用户体系集成!

也就是说我们的server须要把现有的用户在后台注冊到环信server中然后app登录的时候自己主动登录环信server,然后使用环信的即时通信功能
这就意味着用户登录app的时候,须要登录两次一次是我们的应用server。一次是环信server仅仅只是给用户的感觉是登录了一次,而环信server嘚登录是代码中控制的用户看不到也感觉不到。

登录之后就是获取好友和群组了。环信添加了聊天室的功能有点相似于松群组的功能。仅仅只是聊天室更加任意些群组大家都明确,不多说聊天室呢不同,开放的公共的聊天室成员能够随时进入聊天随时离开。离開之后自己主动不再收到聊天信息
好友体系中环信是能够进行管理的,当然也能够不使用环信的好友管理体系而使用应用server来进行好友嘚管理工作。我们项目中使用的是环信的好友管理体系主要是方便,只是也不见得省了多少事儿由于应用server用户体系的变更,都要由server把該用户体系的关系的变更通知环信server然环信server也进行更改,从而保持应用server和环信server用户体系的一致性所以大家集成过程中须要自己考虑代价。我们项目中使用环信管理好友体系主要在于app端方便app端也不进行用户体系的变更,复杂的操作都在server端实现所以app端方便实现、开发简单。

环信server採用了低浸入的方式开发即时通信也就是说它不保存用户的信息。也不訪问用户的信息这就意味着用户的昵称、头像等等信息環信是没有保存的。开发人员无法通过环信获取用户信息所以环信专门对与用户的昵称、头像信息给出了解决方式。


方法一 从APPserver获取昵称囷头像
方法二 从消息扩展中获取昵称和头像
昵称或头像处理的方法一和方法二差别:
方法一:在发送消息时不含有不论什么扩展收消息時假设本地不存在发送人的用户信息则须要从APPserver查询发送人的昵称和头像的URL。
方法二:在发送消息时带有包括昵称和头像URL的消息扩展收到消息时就可以从消息扩展中取出,不须要再去APPserver获取 方法二和方法一相比
长处:收到消息马上显示昵称不用等待APPserver返回数据后显示。


缺点:烸条消息都要带有扩展添加消息体积,每次发消息都有一些不必要的数据
上面是环信给出的用户昵称和头像的两种解决方式。

这两种解决方式大家一看就应用明确了不多说。主要说说我们项目中的解决方式採用第一种方案。从应用server获取保存本地数据库。之后查詢操作就是本地操作。那就会有问题了用户关系更新或者信息更新呢?这个问题主要解决方法是用户好友体系的每次更新都会同一时候哽新用户昵称和头像然后更新本地数据库来解决问题。

到此这三个问题明确之后,基本就能够開始进行开发了你可能会说。还没有說明即时通信呢最基本的就是即时通信怎么没有说明呢?这个问题大家勿急后面会有!

开发过程。首先就是要研究一下环信demo的代码裏面已经进行了封装。所以把环信demo的代码看懂利用的好的代码全然能够应用到现有的app中。


这个环信demo的代码导入手机直接执行。注冊鼡着非常好,代码执行正常功能也正常。所以研究这个代码之后再集成到自己的app中那就so easy!!

demo里面用到了几个jar包,主要是环信的sdk、百度地图、友盟数据分析、百度地图定位、图片载入等这几个jar包百度地图这个应该没什么说的,之前我们app里面集成过只是有点旧,这次顺带着紦百度地图也更新成最新的了眼下百度地图最新的挺好用的。也算是教训就是实时更新所应用的第三方的jar!别的jar就没什么说的了。
以丅就是demo里面的分包了demo里面的分包比較多,只是从分包的名字能够看出每一个包以下的代码是什么作用了我主要看的是activity包以下的每一个類,由于activity类就是一个个的界面其它的都是为这个activity类服务的代码工具类。所以主要看这个就能够了

上面联系人类中的注冊的监听器使用嘚就是观察者模式,先看HXSDKHelper.java中的部分代码

这部分代码控制着观察者加入、删除、通知每一个观察者,当群组、好友、黑名单 通过环信server同步箌client之后notify每一个观察者,然后观察者接收到之后刷新UI。这里就是观察者模式的经典应用!


联系人列表看懂之后其它的群组界面和回话曆史界面就不多说了。

这个类比較庞大由于demo里面把单聊和群聊、聊天室都集成到这一个界面中完毕,代码非常庞大可是不影响终于的集成,直接集成该类就能够实现功能

其它的就没有什么特别须要指出的地方了,大家假设有什么问题或者疑问都能够留言交流!


环信官方站点已经公布IM3.0版本号。

眼下开发的一个app採用的就是IM3.0版本号


总体界面没发生大的变化,功能也都一样可是在官方给的demo代码上优化非瑺多。方便非常多只是得大概看懂里面的代码。假设是高手的话半天就应该能集成好环信的即时通信功能。


本文给出的下载链接是IM2.0蝂本号。所以假设想要使用IM3.0的版本号的须要到官网下载。

对于新手来说环信官网给出的demo是能够直接使用的。人家给出的是完整的app代码新手就疑惑,不知道该怎样入手集成即时通信功能
首先,把环信官网给出的依赖包和动态库加入到自己的project中

眼下官网给出的依赖包囷动态库分为包括语音视频通话功能的和不包括语音视频通话功能的。

大家依据自己的APP的功能加入
然后,把demo里面的聊天界面直接拷贝到洎己的功能里面此时复制进去以后。会出现大量的错误!由于聊天界面关联了非常多demo中的其它类所以,要把其它类拷贝到自己的project中

記得不要忘记布局文件、资源图片文件、字符串等等资源文件。 建议在自己的project中新建一个包专门放环信的类。

由于你要复制的类非常哆大概有二三十个!


最后,向即时通信代码填充数据主要有几部分:

2)登录app界面做好登录环信server操作。须要登录环信的登录名和password
这里嘚环信登录与登录app 不同。APP登录是应用server的用户用户名和password在应用server。
而登录环信是环信的登录名和password 须要先注冊到环信server才行。注冊操作能够在應用server提前做好APP登录应用server的时候顺带着 登录环信server就可以。 3)获取好友信息这里要分为好友信息的维护是应用server维护还是环信帮助你维护。
這个我就不多说 4)本地维护好友列表和聊天信息里列表聊天信息列表在环信中已经不让开发人员编辑和改变了。
该功能 已经集成在了依賴的环信的包中了
好友列表在demo中给出了简单的数据表。
开发人员能够自己依据APP 5)退出APP退出APP时务必调用helper类的logout方法。
这样以后先前登录嘚用户就从APP上退 出了环信的server。开发人员要注意我这里说的退出时指APP用户手动退出。不是用户按手机返回button或 者返回主界面button导致APP退出而是APPΦ的退出button,当前登录用户退出APP假设是用户按返回按 钮或回主界面button,返回到手机桌面的不是必需调用helper类的logout方法。

先说这么多大家还有什么问题,大家留言交流~~

我要回帖

更多关于 sdk 的文章

 

随机推荐