环信android SDK 音频文件接收

来源:互联网 发布:mysql client android 编辑:程序博客网 时间:2024/06/05 09:13

最近用环信的android sdk开发一款即时通信软件,由于自己不是大神所以遇到一些坎坷,但是it行业也是长江后浪推前浪,给后来人留点经验!也给前人看看后来人的不懈努力!废话不多说啦。
先来看看环信大哥是怎么给开发者写的文档,接收信息就这么多
这里写图片描述
看起来不免让人疑惑。问题一、怎么知道收到消息的类型(文本、语音、图片)?问题二、怎样从message中提取有用的信息?在开发者文档中并没有相关的解释。但是经过本人不屑的努力。看下面
问题一:在message可以寻找一个getType方法message.getType它等于什么才是什么样的类型那?

message.getType() == EMMessage.Type.VOICE

我想大多数人都是先log 一下message.getType()然后写

message.getType() =="VOICE"

这样写略显尴尬!
上面是我翻阅环信的SDK源码找到的
问题二:我想一开始大多数人用的是message.getBody(),文本还好说的到的是tet“”内容“”,但是图音就完蛋了voice:duyu_20170908 150649635.3gp,localurl:/storage/emulated/0/Android/data/com.dy.listview_demo/1176170605115119#timetravel/files/admin/duyu/4ac144f0-9464-11e7-9b9d-1b768809cc3d.3gp,remoteurl:https://a1.easemob.com/1176170605115119/timetravel/chatfile/4ac144f0-9464-11e7-9b9d-1768809cc3,length:2这是我的一条音频信息虽然可以看到其中很多有用的信息,可是我们却没有办法提取其中的有用的信息,也不是没用看法可以写一个大循环遍历这个字符串提取有用的信息,但是这种方法也不可避免的让人惊倒下巴!

String url = ((EMVoiceMessageBody)message.getBody()).getRemoteUrl();                        int  vtime = ((EMVoiceMessageBody)message.getBody()).getLength();

这是我查看环信的demo的网络上的源码发现的,环信其实给到了解决方案,但为什么不写到开发者文档里呢?反正以本人实习生的水平来看翻阅你的源码是很难找到的。
为了解决这的问题我给客服打过电话,管理后台发过工单,给环信发过邮件,但都不回复是什么鬼?但本人没有半途而废,功夫不负有心人。
我想批评一下环信:
1、开发者文档写的太撩草,太不详细。
2、客服太差劲,这样一个小问题几天都得不到回复。
最后毕竟大家不易 希望我的文章对大家有所帮助,希望环信越来越好,也祝自己。。。。。。

原创粉丝点击