环信_Android

环信_Android

0
评论

2018科大讯飞全球1024开发者节,来了! 1024程序员节 1024大会 科大讯飞

beyond 发表了文章 • 536 次浏览 • 2018-09-30 15:14 • 来自相关话题

10月24日-10月25日,安徽·合肥,2018届科大讯飞全球1024开发者节即将重磅开启,邀请MIT科技创新专家等大咖,还有10多场AI+分论坛、1000+AI产品等你体验。点击阅读原文,即刻进入官网抢票!





如果要用一样事物来形容科技,非光莫属。科技革新如光一般照亮我们的生活,让我们看到未来。

讯飞开放平台自2010年成立以来,目前已拥有83万开发者。我们一起在“追光之旅”中不断探索万物互联的缤纷世界,攀登AI之巅!

秉承“开放·合作·生态·共享”理念。2018届科大讯飞全球1024开发者节,我们为开发者们带来更多精彩。 
今年1024,你将看到
 
1.AI领军人物齐聚前沿论坛
如果你想与AI商业化专家吴霁虹、斯坦福大学教授蒋里、科大讯飞董事长刘庆峰、AI大学校长胡郁、讯飞华南公司总裁杜兰、智慧医疗专家陶晓东、MIT35岁以下科技创新青年魏思等AI领袖面对面,请一定不要错过本届1024开发者节。
 
2.1024计划全新发布
2017届全球1024开发者节,“1024计划”重磅推出。从“AI教引”、“AI生态”、“AI公益”三个方面,辅导、赋能开发者,关注公益事业。

回顾:重磅 | 科大讯飞发布《1024计划》,AI点亮全球

今年开发者节,全新“1024计划”将现场公布,新的计划将:

更大规模:覆盖更宽广的领域,让更多用户感受到AI所带来的便捷!

更大力度:用更先进的AI科技,更全面的支持策略,赋能未来!
 
3.最强AI开发者现场终极PK
科大讯飞2018年面向全球正式发起首届“顶天立地”iFLYTEK AI开发者大赛。历时4个月,大赛吸引了1万余名世界各地的优秀开发者踊跃参加,共计收到全球3千多支团队提交参赛作品。

10月24日,应用开发AI挑战赛总决赛9支团队,方言种类识别AI挑战赛总决赛8支团队将在开发者节现场展开AI开发技能的巅峰对决和终极PK。
 
4.公益音乐节,以AI之名传递温暖
2018届科大讯飞全球1024开发者节,将延续“三声有幸”的公益主题,盛邀公益音乐人亲临,为AI献声!以歌声传达鼓舞人心的力量,用音乐唤醒人们对公益的认知。另外,现场还将有特别呈现的“公益天使”带来的的额外惊喜!

注:AI公益音乐节所有门票收入将全部用于讯飞“三声有幸”公益计划。
 
5.2大展区,50+展位,1000+黑科技
在AI体验区,我们准备了多个神秘环节,带给你突破想象力边界的AI旅程。我们用1000+AI黑科技展示对生活的思考。
 
在生态展区,科大讯飞集结自己的生态合作伙伴,在50多个展位上展示最前沿的AI落地产品和服务。覆盖企业服务、图像识别、健康医疗、公益、大数据、智能家居、机器人、智能营销、智能招聘……为你带来最in的场景化体验。

AIUI、讯飞医疗、AI大学、智慧城市……科技展区将带来科大讯飞各事业群的最新成果,从大型电信级应用到小型嵌入式应用;从手机到车载;从家电到玩具,你将体验能够满足不同应用环境的各种惊喜。


6.行业大咖做客,10+场AI细分领域论坛
医疗、客服、营销、家居、机器人、城市、AIoT……本届1024开发者节围绕等10多场AI+场景举行深度分论坛。

知名企业的资深大咖将与大家分享AI时代的见解,在圆桌互动交流彼此观点。我们将会展示讯飞和合作伙伴之间共创的各项核心赛道的AI风采,以科技之心为开发者赋能,用AI之光点亮全行业!

7.丰富互动,亲身参与“追光之旅”
你既可以与AI大咖零距离沟通,围绕AI发展进行思维碰撞,也可以现场与他人分享你对AI产品的使用体验。在2018届科大讯飞全球1024开发者节,你不仅是一名AI巅峰领域的见证者,更是追逐AI科技之光的参与者!

如何开启我的“追光之旅”?2018届全球1024开发者节购票通道已正式开启

贵宾票、嘉宾票、学生票、音乐节票任你选择

点击购买门票即刻抢票





想了解更多关于票务及优惠方面的信息,快添加AI小助手微信号:iFLYTEKAI





 
我们希望全球1024开发者节可以构建人工智能生态链接,打造科技文化独家品牌,影响全球人工智能开发者、爱好者,用人工智能共创美好世界!

2018届科大讯飞全球1024开发者节将用最新最全的人工智能技术和产品促进跨行业链接、多领域碰撞、新技术开发,以科技之光、生态之念,立足当下、放眼未来!

凡是过往,皆为序曲。AI+带来的无限可能,都在此刻埋下伏笔。1024,许你未来之光! 查看全部
10月24日-10月25日,安徽·合肥,2018届科大讯飞全球1024开发者节即将重磅开启,邀请MIT科技创新专家等大咖,还有10多场AI+分论坛、1000+AI产品等你体验。点击阅读原文,即刻进入官网抢票!

微信图片_20180930150850.jpg

如果要用一样事物来形容科技,非光莫属。科技革新如光一般照亮我们的生活,让我们看到未来。

讯飞开放平台自2010年成立以来,目前已拥有83万开发者。我们一起在“追光之旅”中不断探索万物互联的缤纷世界,攀登AI之巅!

秉承“开放·合作·生态·共享”理念。2018届科大讯飞全球1024开发者节,我们为开发者们带来更多精彩。 
今年1024,你将看到
 
1.AI领军人物齐聚前沿论坛
如果你想与AI商业化专家吴霁虹、斯坦福大学教授蒋里、科大讯飞董事长刘庆峰、AI大学校长胡郁、讯飞华南公司总裁杜兰、智慧医疗专家陶晓东、MIT35岁以下科技创新青年魏思等AI领袖面对面,请一定不要错过本届1024开发者节。
 
2.1024计划全新发布
2017届全球1024开发者节,“1024计划”重磅推出。从“AI教引”、“AI生态”、“AI公益”三个方面,辅导、赋能开发者,关注公益事业。

回顾:重磅 | 科大讯飞发布《1024计划》,AI点亮全球

今年开发者节,全新“1024计划”将现场公布,新的计划将:

更大规模:覆盖更宽广的领域,让更多用户感受到AI所带来的便捷!

更大力度:用更先进的AI科技,更全面的支持策略,赋能未来!
 
3.最强AI开发者现场终极PK
科大讯飞2018年面向全球正式发起首届“顶天立地”iFLYTEK AI开发者大赛。历时4个月,大赛吸引了1万余名世界各地的优秀开发者踊跃参加,共计收到全球3千多支团队提交参赛作品。

10月24日,应用开发AI挑战赛总决赛9支团队,方言种类识别AI挑战赛总决赛8支团队将在开发者节现场展开AI开发技能的巅峰对决和终极PK。
 
4.公益音乐节,以AI之名传递温暖
2018届科大讯飞全球1024开发者节,将延续“三声有幸”的公益主题,盛邀公益音乐人亲临,为AI献声!以歌声传达鼓舞人心的力量,用音乐唤醒人们对公益的认知。另外,现场还将有特别呈现的“公益天使”带来的的额外惊喜!

注:AI公益音乐节所有门票收入将全部用于讯飞“三声有幸”公益计划。
 
5.2大展区,50+展位,1000+黑科技
在AI体验区,我们准备了多个神秘环节,带给你突破想象力边界的AI旅程。我们用1000+AI黑科技展示对生活的思考。
 
在生态展区,科大讯飞集结自己的生态合作伙伴,在50多个展位上展示最前沿的AI落地产品和服务。覆盖企业服务、图像识别、健康医疗、公益、大数据、智能家居、机器人、智能营销、智能招聘……为你带来最in的场景化体验。

AIUI、讯飞医疗、AI大学、智慧城市……科技展区将带来科大讯飞各事业群的最新成果,从大型电信级应用到小型嵌入式应用;从手机到车载;从家电到玩具,你将体验能够满足不同应用环境的各种惊喜。


6.行业大咖做客,10+场AI细分领域论坛
医疗、客服、营销、家居、机器人、城市、AIoT……本届1024开发者节围绕等10多场AI+场景举行深度分论坛。

知名企业的资深大咖将与大家分享AI时代的见解,在圆桌互动交流彼此观点。我们将会展示讯飞和合作伙伴之间共创的各项核心赛道的AI风采,以科技之心为开发者赋能,用AI之光点亮全行业!

7.丰富互动,亲身参与“追光之旅”
你既可以与AI大咖零距离沟通,围绕AI发展进行思维碰撞,也可以现场与他人分享你对AI产品的使用体验。在2018届科大讯飞全球1024开发者节,你不仅是一名AI巅峰领域的见证者,更是追逐AI科技之光的参与者!

如何开启我的“追光之旅”?2018届全球1024开发者节购票通道已正式开启

贵宾票、嘉宾票、学生票、音乐节票任你选择

点击购买门票即刻抢票

微信图片_20180930151332.jpg

想了解更多关于票务及优惠方面的信息,快添加AI小助手微信号:iFLYTEKAI

微信图片_20180930151351.jpg

 
我们希望全球1024开发者节可以构建人工智能生态链接,打造科技文化独家品牌,影响全球人工智能开发者、爱好者,用人工智能共创美好世界!

2018届科大讯飞全球1024开发者节将用最新最全的人工智能技术和产品促进跨行业链接、多领域碰撞、新技术开发,以科技之光、生态之念,立足当下、放眼未来!

凡是过往,皆为序曲。AI+带来的无限可能,都在此刻埋下伏笔。1024,许你未来之光!
9
回复

收集基于环信SDK开发的开源项目 开源项目

xiaoyan2015 回复了问题 • 12 人关注 • 10685 次浏览 • 2018-08-18 10:42 • 来自相关话题

3
评论

【开源项目】全国首个开源直播小程序源码 环信公开课 小程序 直播

beyond 发表了文章 • 2125 次浏览 • 2018-07-20 17:30 • 来自相关话题

今天你看直播了吗?拥有10亿微信生态用户的小程序已经成为了继移动互联后的又一个现象级风口,随着微信小程序对外开放实时音视频录制及播放等更多连接能力,小程序与直播强强联合,在各行各业找到了非常多的玩法,小程序直播相比微信直播和APP直播更加简洁、流畅、低延时、多入口等众多优势迅速向商业直播领域及泛娱乐直播领域蔓延。从小游戏、内容付费、工具、大数据、社交电商创业者到传统品牌商们,都在努力搭上小程序直播这辆快车,以免错过微信生态里新的流量洼地。
 





作为一名环信生态圈资深开发者,本着对技术的热衷,对环信的眷恋和对党的忠诚,基于环信即时通讯云写了“直播购物小程序”,目前项目源码已全部免费开放,希望对有需求的企业和开发者提供一个思路和参考。
直播购物小程序源码github地址:https://github.com/YuTongNetworkTechnology/wechat_live/tree/master 
git打不开可直接点下面链接下载


小程序直播demo_2018-06-21.zip







直播购物小程序运行预览图 
 
小程序体验指南(仅需两步):
 
1、下载微信小程序开发工具,下载地址:https://developers.weixin.qq.c ... .html 
 




2、导入源码:将附件的源码解压直接导入 







环信小程序直播技术文档
一、 使用的技术
1、 环信IM直播室。
2、 微信小程序实时音视频播放组件live-player。
3、 推流软件(obs、易推流)等推流。
4、 视频流服务器(UCLOUD、七牛、腾讯)等视频流服务器。
二、 系统使用流程。
1、 视频推流软件将视频流推到流服务器。
2、 打开视频直播demo小程序注册环信账号。
3、 进入软件直播室进行测试。
三、 技术流程及使用的SDk
1、 注册环信账号
打开https://www.easemob.com/ 环信官网,点击右上角注册按钮,选择[注册即时通讯云]




填写对相关信息进行注册





注册成功后进行登录




注:新注册用户需进行账号的认证。
2、 直播应用创建
登录成功点击应用列表选择创建应用




输入应用名称等信息
 





创建成功后点击应用进入





需要注意的是应用的OrgName 和AppName这两个是以后都需要用到的两个参数变量




3、 直播创建
1)在创建直播之前需要对应用进行设置首先需要设置应用的直播流地址
第一步获取应用管理员的Tokencurl -X POST "https://a1.easemob.com/[应用OrgName]/[应用AppName]/token" -d '{"grant_type":"client_credentials","client_id":"[应用client_id]","client_secret":"[应用] client_secret"}'返回格式{
"access_token":"YWMtWY779DgJEeS2h9OR7fw4QgAAAUmO4Qukwd9cfJSpkWHiOa7MCSk0MrkVIco",
"expires_in":5184000,
"application":"c03b3e30-046a-11e4-8ed1-5701cdaaa0e4"












第二步设置直播流地址curl -X POST -H "Authorization: Bearer [管理员Token]" " https://a1.easemob.com/[应用OrgName]/[应用AppName]/liverooms/stream_url -d '{"pc_pull":"[pc拉流地址]","pc_push":"[pc推流地址]","mobile_pull":"[手机拉流地址]","mobile_push":"[手机推流地址]"}'"成功返回格式:{
"action": "post",
"application": "e1a09de0-0e03-11e7-ad8e-a1d913615409",
"uri": "http://127.0.0.1:8080/easemob- ... ot%3B,
"entities": [ ],
"data": {
"pc_pull": true,
"mobile_push": true,
"mobile_pull": true,
"pc_push": true
},
"timestamp": 1494084474885,
"duration": 1,
"organization": "easemob-demo",
"applicationName": "chatdemoui"
}












2)创建主播
点击IM用户





点击注册IM用户





填写用户信息





创建用户的过程同样也可以通过REST API形式进行curl -X POST -i " https://a1.easemob.com/[应用OrgName]/[应用AppName]/users" -d '{"username":"[用户名]","password":"[密码]"}'
注:应用必须为开放注册





将注册的用户添加为主播curl -X POST -H "Authorization: [管理员Token]" https://a1.easemob.com/[应用OrgName]/[应用AppName]/super_admin -d'{"superadmin":"[IM用户名]"}'返回结果示例:{
"action": "post",
"application": "4d7e4ba0-dc4a-11e3-90d5-e1ffbaacdaf5",
"uri": "http://127.0.0.1:8080/easemob- ... ot%3B,
"entities": [ ],
"data": {
"result": "success"
},
"timestamp": 1496236798886,
"duration": 0,
"organization": "easemob-demo",
"applicationName": "chatdemoui"
}












3)创建直播
点击直播





点击新建房间





填写房间信息




创建房间同时也可以使用REST API形式进行详情可以查看http://docs.easemob.com/im/live/server-integration环信官方文档。
4、 小程序demo集成使用
小程序直播购物demo集成官方WebIM SDK详情请查看https://github.com/easemob/webim-weixin-xcx
Demo具体配置如下
打开demo 下sdk配置文件





修改appkey为自己应用的appkey





打开pages/live/index.js修改房间默认拉流地址及直播间房间号





四、 扩展说明
Demo中房间为固定测试房间,实际使用中应获取环信直播的房间信息及房间列表。具体如下:
获取直播间列表:curl -X GET -H "Authorization: Bearer [用户Token]" https://a1.easemob.com/[应用OrgName]/[应用AppName]/liverooms?ongoing=true&limit=[获取数量]&cursor=[游标地址(不填写为充开始查询)]
响应:{
"action": "get",
"application": "4d7e4ba0-dc4a-11e3-90d5-e1ffbaacdaf5",
"params": {
"cursor": [
"ZGNiMjRmNGY1YjczYjlhYTNkYjk1MDY2YmEyNzFmODQ6aW06Y2hhdHJvb206ZWFzZW1vYi1kZW1vI2NoYXRkZW1vdWk6MzE"
],
"ongoing": [
"true"
],
"limit": [
"2"
]
},
"uri": "http://127.0.0.1:8080/easemob- ... ot%3B,
"entities": [ ],
"data": [
{
"id": "1924",
"chatroom_id": "17177265635330",
"title": "具体了",
"desc": "就咯",
"startTime": 1495779917352,
"endTime": 1495779917352,
"anchor": "wuls",
"gift_count": 0,
"praise_count": 0,
"current_user_count": 8,
"max_user_count": 9,
"status": "ongoing",
"cover_picture_url": "",
"pc_pull_url": "rtmp://vlive3.rtmp.cdn.ucloud.com.cn/ucloud/easemob-demo_chatdemoui_1924_1",
"pc_push_url": "rtmp://publish3.cdn.ucloud.com.cn/ucloud/easemob-demo_chatdemoui_1924_1",
"mobile_pull_url": "rtmp://vlive3.rtmp.cdn.ucloud.com.cn/ucloud/easemob-demo_chatdemoui_1924_1",
"mobile_push_url": "rtmp://publish3.cdn.ucloud.com.cn/ucloud/easemob-demo_chatdemoui_1924_1"
},
{
"id": "1922",
"chatroom_id": "17175003856897",
"title": "香山",
"desc": "随便",
"startTime": 1495777760957,
"endTime": 1495777760957,
"anchor": "sx001",
"gift_count": 0,
"praise_count": 8,
"current_user_count": 1,
"max_user_count": 3,
"status": "ongoing",
"cover_picture_url": "http://127.0.0.1:8080/easemob- ... ot%3B,
"pc_pull_url": "rtmp://vlive3.rtmp.cdn.ucloud.com.cn/ucloud/easemob-demo_chatdemoui_1922_1",
"pc_push_url": "rtmp://publish3.cdn.ucloud.com.cn/ucloud/easemob-demo_chatdemoui_1922_1",
"mobile_pull_url": "rtmp://vlive3.rtmp.cdn.ucloud.com.cn/ucloud/easemob-demo_chatdemoui_1922_1",
"mobile_push_url": "rtmp://publish3.cdn.ucloud.com.cn/ucloud/easemob-demo_chatdemoui_1922_1"
}
],
"timestamp": 1496303336669,
"duration": 0,
"organization": "easemob-demo",
"applicationName": "chatdemoui",
"cursor": "ZGNiMjRmNGY1YjczYjlhYTNkYjk1MDY2YmEyNzFmODQ6aW06Y2hhdHJvb206ZWFzZW1vYi1kZW1vI2NoYXRkZW1vdWk6NDk",
"count": 2
}












获取直播间详情:curl -X GET -H "Authorization: Bearer [用户Token]" " https://a1.easemob.com/[应用OrgName]/[应用AppName]/[房间id]/status"响应:{
"action": "get",
"application": "4d7e4ba0-dc4a-11e3-90d5-e1ffbaacdaf5",
"uri": "http://127.0.0.1:8080/easemob- ... ot%3B,
"entities": [ ],
"data": {
"liveRoomID": "1946",
"status": "ongoing"
},
"timestamp": 1496234759930,
"duration": 0,
"organization": "easemob-demo",
"applicationName": "chatdemoui",
"count": 0
}














 
使用环信直播购物小程序遇到任何问题欢迎跟帖讨论。 查看全部
今天你看直播了吗?
拥有10亿微信生态用户的小程序已经成为了继移动互联后的又一个现象级风口,随着微信小程序对外开放实时音视频录制及播放等更多连接能力,小程序与直播强强联合,在各行各业找到了非常多的玩法,小程序直播相比微信直播和APP直播更加简洁、流畅、低延时、多入口等众多优势迅速向商业直播领域及泛娱乐直播领域蔓延。从小游戏、内容付费、工具、大数据、社交电商创业者到传统品牌商们,都在努力搭上小程序直播这辆快车,以免错过微信生态里新的流量洼地。
 
微信图片_20180725162426.jpg


作为一名环信生态圈资深开发者,本着对技术的热衷,对环信的眷恋和对党的忠诚,基于环信即时通讯云写了“直播购物小程序”,目前项目源码已全部免费开放,希望对有需求的企业和开发者提供一个思路和参考。
直播购物小程序源码github地址:https://github.com/YuTongNetworkTechnology/wechat_live/tree/master 
git打不开可直接点下面链接下载



预览图.jpg

直播购物小程序运行预览图 
 
小程序体验指南(仅需两步):
 
1、下载微信小程序开发工具,下载地址:https://developers.weixin.qq.c ... .html 
 
Catch9A07(07-20-17-38-30).jpg

2、导入源码:将附件的源码解压直接导入 


Catch1C69(07-20-17-38-30).jpg


环信小程序直播技术文档
一、 使用的技术
1、 环信IM直播室。
2、 微信小程序实时音视频播放组件live-player。
3、 推流软件(obs、易推流)等推流。
4、 视频流服务器(UCLOUD、七牛、腾讯)等视频流服务器。
二、 系统使用流程。
1、 视频推流软件将视频流推到流服务器。
2、 打开视频直播demo小程序注册环信账号。
3、 进入软件直播室进行测试。
三、 技术流程及使用的SDk
1、 注册环信账号
打开https://www.easemob.com/ 环信官网,点击右上角注册按钮,选择[注册即时通讯云]
1.png

填写对相关信息进行注册

2.png

注册成功后进行登录
3.png

注:新注册用户需进行账号的认证。
2、 直播应用创建
登录成功点击应用列表选择创建应用
4.png

输入应用名称等信息
 

5.png

创建成功后点击应用进入

6.png

需要注意的是应用的OrgName 和AppName这两个是以后都需要用到的两个参数变量
7.png

3、 直播创建
1)在创建直播之前需要对应用进行设置首先需要设置应用的直播流地址
第一步获取应用管理员的Token
curl -X POST "https://a1.easemob.com/[应用OrgName]/[应用AppName]/token" -d '{"grant_type":"client_credentials","client_id":"[应用client_id]","client_secret":"[应用] client_secret"}'
返回格式
{
"access_token":"YWMtWY779DgJEeS2h9OR7fw4QgAAAUmO4Qukwd9cfJSpkWHiOa7MCSk0MrkVIco",
"expires_in":5184000,
"application":"c03b3e30-046a-11e4-8ed1-5701cdaaa0e4"












第二步设置直播流地址
curl -X POST -H "Authorization: Bearer [管理员Token]"  " https://a1.easemob.com/[应用OrgName]/[应用AppName]/liverooms/stream_url -d '{"pc_pull":"[pc拉流地址]","pc_push":"[pc推流地址]","mobile_pull":"[手机拉流地址]","mobile_push":"[手机推流地址]"}'"
成功返回格式:
{
"action": "post",
"application": "e1a09de0-0e03-11e7-ad8e-a1d913615409",
"uri": "http://127.0.0.1:8080/easemob- ... ot%3B,
"entities": [ ],
"data": {
"pc_pull": true,
"mobile_push": true,
"mobile_pull": true,
"pc_push": true
},
"timestamp": 1494084474885,
"duration": 1,
"organization": "easemob-demo",
"applicationName": "chatdemoui"
}












2)创建主播
点击IM用户

8.png

点击注册IM用户

9.png

填写用户信息

10.png

创建用户的过程同样也可以通过REST API形式进行
curl -X POST -i " https://a1.easemob.com/[应用OrgName]/[应用AppName]/users" -d '{"username":"[用户名]","password":"[密码]"}'

注:应用必须为开放注册

11.png

将注册的用户添加为主播
curl -X POST -H "Authorization: [管理员Token]"  https://a1.easemob.com/[应用OrgName]/[应用AppName]/super_admin -d'{"superadmin":"[IM用户名]"}'
返回结果示例:
{
"action": "post",
"application": "4d7e4ba0-dc4a-11e3-90d5-e1ffbaacdaf5",
"uri": "http://127.0.0.1:8080/easemob- ... ot%3B,
"entities": [ ],
"data": {
"result": "success"
},
"timestamp": 1496236798886,
"duration": 0,
"organization": "easemob-demo",
"applicationName": "chatdemoui"
}












3)创建直播
点击直播

12.png

点击新建房间

13.png

填写房间信息
14.png

创建房间同时也可以使用REST API形式进行详情可以查看http://docs.easemob.com/im/live/server-integration环信官方文档。
4、 小程序demo集成使用
小程序直播购物demo集成官方WebIM SDK详情请查看https://github.com/easemob/webim-weixin-xcx
Demo具体配置如下
打开demo 下sdk配置文件

15.png

修改appkey为自己应用的appkey

16.png

打开pages/live/index.js修改房间默认拉流地址及直播间房间号

17.png

四、 扩展说明
Demo中房间为固定测试房间,实际使用中应获取环信直播的房间信息及房间列表。具体如下:
获取直播间列表:
curl -X GET -H "Authorization: Bearer  [用户Token]"  https://a1.easemob.com/[应用OrgName]/[应用AppName]/liverooms?ongoing=true&limit=[获取数量]&cursor=[游标地址(不填写为充开始查询)]

响应:
{
"action": "get",
"application": "4d7e4ba0-dc4a-11e3-90d5-e1ffbaacdaf5",
"params": {
"cursor": [
"ZGNiMjRmNGY1YjczYjlhYTNkYjk1MDY2YmEyNzFmODQ6aW06Y2hhdHJvb206ZWFzZW1vYi1kZW1vI2NoYXRkZW1vdWk6MzE"
],
"ongoing": [
"true"
],
"limit": [
"2"
]
},
"uri": "http://127.0.0.1:8080/easemob- ... ot%3B,
"entities": [ ],
"data": [
{
"id": "1924",
"chatroom_id": "17177265635330",
"title": "具体了",
"desc": "就咯",
"startTime": 1495779917352,
"endTime": 1495779917352,
"anchor": "wuls",
"gift_count": 0,
"praise_count": 0,
"current_user_count": 8,
"max_user_count": 9,
"status": "ongoing",
"cover_picture_url": "",
"pc_pull_url": "rtmp://vlive3.rtmp.cdn.ucloud.com.cn/ucloud/easemob-demo_chatdemoui_1924_1",
"pc_push_url": "rtmp://publish3.cdn.ucloud.com.cn/ucloud/easemob-demo_chatdemoui_1924_1",
"mobile_pull_url": "rtmp://vlive3.rtmp.cdn.ucloud.com.cn/ucloud/easemob-demo_chatdemoui_1924_1",
"mobile_push_url": "rtmp://publish3.cdn.ucloud.com.cn/ucloud/easemob-demo_chatdemoui_1924_1"
},
{
"id": "1922",
"chatroom_id": "17175003856897",
"title": "香山",
"desc": "随便",
"startTime": 1495777760957,
"endTime": 1495777760957,
"anchor": "sx001",
"gift_count": 0,
"praise_count": 8,
"current_user_count": 1,
"max_user_count": 3,
"status": "ongoing",
"cover_picture_url": "http://127.0.0.1:8080/easemob- ... ot%3B,
"pc_pull_url": "rtmp://vlive3.rtmp.cdn.ucloud.com.cn/ucloud/easemob-demo_chatdemoui_1922_1",
"pc_push_url": "rtmp://publish3.cdn.ucloud.com.cn/ucloud/easemob-demo_chatdemoui_1922_1",
"mobile_pull_url": "rtmp://vlive3.rtmp.cdn.ucloud.com.cn/ucloud/easemob-demo_chatdemoui_1922_1",
"mobile_push_url": "rtmp://publish3.cdn.ucloud.com.cn/ucloud/easemob-demo_chatdemoui_1922_1"
}
],
"timestamp": 1496303336669,
"duration": 0,
"organization": "easemob-demo",
"applicationName": "chatdemoui",
"cursor": "ZGNiMjRmNGY1YjczYjlhYTNkYjk1MDY2YmEyNzFmODQ6aW06Y2hhdHJvb206ZWFzZW1vYi1kZW1vI2NoYXRkZW1vdWk6NDk",
"count": 2
}












获取直播间详情:
curl -X GET -H "Authorization: Bearer [用户Token]" " https://a1.easemob.com/[应用OrgName]/[应用AppName]/[房间id]/status"
响应:
{
"action": "get",
"application": "4d7e4ba0-dc4a-11e3-90d5-e1ffbaacdaf5",
"uri": "http://127.0.0.1:8080/easemob- ... ot%3B,
"entities": [ ],
"data": {
"liveRoomID": "1946",
"status": "ongoing"
},
"timestamp": 1496234759930,
"duration": 0,
"organization": "easemob-demo",
"applicationName": "chatdemoui",
"count": 0
}














 
使用环信直播购物小程序遇到任何问题欢迎跟帖讨论。
18
评论

【新手快速入门】集成环信常见问题+解决方案汇总 常见问题

dujiepeng 发表了文章 • 17305 次浏览 • 2017-05-22 15:51 • 来自相关话题

   这里整理了集成环信的常见问题和一些功能的实现思路,希望能帮助到大家。感谢热心的开发者贡献,大家在观看过程中有不明白的地方欢迎直接跟帖咨询。
 
ios篇
APNs证书创建和上传到环信后台头像昵称的简述和处理方案音视频离线推送Demo实现环信服务器聊天记录保存多久?离线收不到好友请求IOS中环信聊天窗口如何实现文件发送和预览的功能ios集成常见问题环信推送的一些常见问题实现名片|红包|话题聊天室等自定义cell
 
Android篇
Android sdk 的两种导入方式环信3.0SDK集成小米推送教程EaseUI库中V4、v7包冲突解决方案Android EaseUI里的百度地图替换为高德地图android扩展消息(名片集成)关于会话列表的置顶聊天java.lang.UnsatisfiedLinkError: 的问题android 端 app 后台被杀死收不到消息的解决方案
昵称头像篇
android中如何显示开发者服务器上的昵称和头像 Android中显示头像(接上一篇文章看)环信(Android)设置头像和昵称的方法(最简单暴力的基于环信demo的集成)IOS中如何显示开发者服务器上的昵称和头像【环信公开课第12期视频回放】-所有关于环信IM昵称头像的问题听这课就够了
 
直播篇
一言不合你就搞个直播APP
 
客服集成
IM-SDK和客服SDK并存开发指南—Android篇IM-SDK和客服SDK并存开发指南—iOS篇
 
开源项目
Android简版demoios简版demo凡信2.0:超仿微信的开源项目 凡信3.0:携直播和红包而来高仿微信:Github 3,515 Star方圆十里:环信编程大赛冠军项目泛聊:定一个小目标写一个QQSlack聊天机器人:一天时间做一个聊天机器人TV视频通话:在电视上视频通话视频通话:Android手机视频通话酷信:ios高仿微信公众号助手:与订阅用户聊天沟通
 
持续更新ing...小伙伴们还有什么想知道欢迎跟帖提出。
  查看全部
   这里整理了集成环信的常见问题和一些功能的实现思路,希望能帮助到大家。感谢热心的开发者贡献,大家在观看过程中有不明白的地方欢迎直接跟帖咨询。
 
ios篇

 
Android篇

昵称头像篇

 
直播篇
  1. 一言不合你就搞个直播APP

 
客服集成
  1. IM-SDK和客服SDK并存开发指南—Android篇
  2. IM-SDK和客服SDK并存开发指南—iOS篇

 
开源项目

 
持续更新ing...小伙伴们还有什么想知道欢迎跟帖提出。
 
0
回复

android 做环信视频通话。是否可以控制通话的声音大小,甚至静音啊 环信_Android

回复

从容微笑 发起了问题 • 1 人关注 • 140 次浏览 • 2018-10-16 16:59 • 来自相关话题

0
回复

EMClient.getInstance().chatManager().importMessages(messages)没有作用 环信_Android

回复

来者勿拒,去者不追 发起了问题 • 1 人关注 • 148 次浏览 • 2018-10-12 13:43 • 来自相关话题

1
回复

怎么让聊天界只能输入语音 环信_Android

lijiazhen 回复了问题 • 2 人关注 • 356 次浏览 • 2018-10-11 15:31 • 来自相关话题

1
最佳

安卓的,使用环信的群组,请问怎么设置这个群的头像? 环信_Android

lijiazhen 回复了问题 • 2 人关注 • 223 次浏览 • 2018-10-11 15:29 • 来自相关话题

0
回复

经常收不到视频请求 环信_Android

回复

睡不醒的米老鼠 发起了问题 • 1 人关注 • 145 次浏览 • 2018-10-10 17:03 • 来自相关话题

1
最佳

通知栏点击跳转问题 环信_Android

lijiazhen 回复了问题 • 2 人关注 • 328 次浏览 • 2018-10-09 17:47 • 来自相关话题

0
回复

有支持flutter的二次封装吗? 环信_iOS 环信_Android Flutter

回复

[苏州]入云龙-找Web驻场 发起了问题 • 1 人关注 • 142 次浏览 • 2018-10-09 08:41 • 来自相关话题

2
回复

Android 华为移动推送服务无法接收离线消息 环信_Android

尐參米 回复了问题 • 3 人关注 • 346 次浏览 • 2018-10-08 15:03 • 来自相关话题

0
回复

环信会话列表接收到新消息以后conversationListView.refresh()报空指针 环信_Android

回复

qquser 发起了问题 • 1 人关注 • 168 次浏览 • 2018-10-05 16:12 • 来自相关话题

1
回复

聊天页报错 环信_Android 报错

回复

睡不醒的米老鼠 回复了问题 • 1 人关注 • 246 次浏览 • 2018-09-29 15:11 • 来自相关话题

0
回复

easeui视频通话昵称 环信_Android

回复

睡不醒的米老鼠 发起了问题 • 1 人关注 • 224 次浏览 • 2018-09-28 19:23 • 来自相关话题

0
回复

集成环信报错 环信_Android

回复

睡不醒的米老鼠 发起了问题 • 1 人关注 • 192 次浏览 • 2018-09-28 19:18 • 来自相关话题

1
回复

安卓需要配置证书吗 环信_Android

beyond 回复了问题 • 2 人关注 • 294 次浏览 • 2018-09-27 16:58 • 来自相关话题

0
回复

为什么集成没有音视频的hyphenatechat_3.5.1.jar 后登陆后一直提示找不到EMConferenceManager 环信_Android

回复

NaoiAyato 发起了问题 • 1 人关注 • 204 次浏览 • 2018-09-26 15:37 • 来自相关话题

1
回复

调用登录方法异常,提示 Failed resolution of: Lcom/hyphenate/chat/EMConferenceManager; 环信 android 环信_Android 登录 异常

NaoiAyato 回复了问题 • 1 人关注 • 343 次浏览 • 2018-09-26 15:29 • 来自相关话题

0
回复

vivo手机播放视频错误 环信_Android 无法播放视频 vivo

回复

发起了问题 • 1 人关注 • 258 次浏览 • 2018-09-26 10:47 • 来自相关话题

0
回复

CreateLiveRoomActivity.class 这个类131行报错 环信_Android

回复

为你我受冷风 发起了问题 • 1 人关注 • 329 次浏览 • 2018-09-21 14:55 • 来自相关话题

2
回复

登录成功后杀死应用重新进入就会提示账号在其他手机上登录 环信 android 环信_Android 登录 退出登录

beyond 回复了问题 • 2 人关注 • 265 次浏览 • 2018-09-19 18:13 • 来自相关话题

1
回复

安卓能接收消息,发送不了消息,而且setMessageStatusCallback里也没有响应 有专职工程师值守 环信_Android

回复

轻雪飞天 回复了问题 • 1 人关注 • 311 次浏览 • 2018-09-19 11:08 • 来自相关话题

0
回复

登录成功后直接被挤掉是怎么回事? 环信 android 环信_Android 登录

回复

我与你 发起了问题 • 1 人关注 • 281 次浏览 • 2018-09-19 10:33 • 来自相关话题

1
回复

环信3 在高版本安卓上申请数据库权限失败的问题 环信_Android 环信 sqlite权限

回复

勤劳的董永 回复了问题 • 1 人关注 • 341 次浏览 • 2018-09-18 20:56 • 来自相关话题

0
回复

实时通话功能 如何自定义音频源 环信_Android

回复

赵杰 发起了问题 • 1 人关注 • 213 次浏览 • 2018-09-18 16:04 • 来自相关话题

0
回复

登录成功后杀死应用重新进入就会提示账号在其他手机上登录 环信 android 环信_Android 登录

回复

我与你 发起了问题 • 1 人关注 • 180 次浏览 • 2018-09-18 14:18 • 来自相关话题

条新动态, 点击查看
你需要先在本地把easeUI里面的build.gradle文件删除掉
你需要先在本地把easeUI里面的build.gradle文件删除掉
zhuhy

zhuhy 回答了问题 • 2017-01-20 13:41 • 3 个回复 不感兴趣

环信初始化报错。android4.4

赞同来自:

主要是由于一个项目引入了多个其他的 library 导致,当其他的 library 也有不同的 so 库时,环信只有三种 so 库,所以和其他第三方 sdk 同时使用会出现这个,
下边这个地址有详细分析及造成的原因,可以多研究下http://www.jians... 显示全部 »
主要是由于一个项目引入了多个其他的 library 导致,当其他的 library 也有不同的 so 库时,环信只有三种 so 库,所以和其他第三方 sdk 同时使用会出现这个,
下边这个地址有详细分析及造成的原因,可以多研究下http://www.jianshu.com/p/b9a524f24b7e
爱我的人会发光i

爱我的人会发光i 回答了问题 • 2017-03-01 18:11 • 6 个回复 不感兴趣

依赖easeui后运行不上去了

赞同来自:

解决了,使用easeUI之后不需要添加libs里的jar包
解决了,使用easeUI之后不需要添加libs里的jar包
geri_yang

geri_yang 回答了问题 • 2017-10-25 19:48 • 2 个回复 不感兴趣

如何自定义聊天消息框?

赞同来自:

您好,可以自定义消息,您可以发送文本消息,然后其他的数据放在消息的扩展里面发送,然后在扩展里加个标识,标识消息类型,展示时根据这个标识加载对应的item样式就可以了
您好,可以自定义消息,您可以发送文本消息,然后其他的数据放在消息的扩展里面发送,然后在扩展里加个标识,标识消息类型,展示时根据这个标识加载对应的item样式就可以了
我也是这种情况    提工单     一周才把问题解决  汗颜!!
我也是这种情况    提工单     一周才把问题解决  汗颜!!
找到问题所在了,在Application中初始化 EMClient.getInstance().conferenceManager().addConferenceListener(new EMConferenceListener() ,会涉及到这个两个权限,这... 显示全部 »
找到问题所在了,在Application中初始化 EMClient.getInstance().conferenceManager().addConferenceListener(new EMConferenceListener() ,会涉及到这个两个权限,这两个权限在6.0系统上存在BUG ,在7.0系统官方已经修复。(请查看:https://www.jianshu.com/p/bab716584316​)
解决办法是:在6.0系统上需要手动开启设置,而7.0上不需要开启设置。
6.0系统开启设置代码:
private static final int REQUEST_CODE_WRITE_SETTINGS = 2; private void requestWriteSettings() { Intent intent = new Intent(Settings.ACTION_MANAGE_WRITE_SETTINGS); intent.setData(Uri.parse("package:" + getPackageName())); startActivityForResult(intent, REQUEST_CODE_WRITE_SETTINGS ); } @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if (requestCode == REQUEST_CODE_WRITE_SETTINGS) { if (Settings.System.canWrite(this)) { //EMClient.getInstance().conferenceManager().addConferenceListener(new EMConferenceListener() } } }
 
baoshu

baoshu 回答了问题 • 2018-03-05 17:47 • 2 个回复 不感兴趣

Android Demo 发送视频消息失败(视频大于10M)

赞同来自:

文件不能超过10M这个是固定的,文件,图片,视频,语音都是一样的不能大于10M
文件不能超过10M这个是固定的,文件,图片,视频,语音都是一样的不能大于10M
看下初始化是否调用
setCallOptions();
看下初始化是否调用
setCallOptions();
清单文件中注册百度的key和service了吗?
另外可以检查看看百度的key是否有问题的
http://blog.csdn.net/easyer2012/article/details/21399191
 
清单文件中注册百度的key和service了吗?
另外可以检查看看百度的key是否有问题的
http://blog.csdn.net/easyer2012/article/details/21399191
 
陈日明

陈日明 回答了问题 • 2018-05-17 15:49 • 1 个回复 不感兴趣

android 消息列表错乱

赞同来自:

你打印的这个是没有问题的 已读回执是 读取消息的时间 收到消息 是你收到消息的时间
你打印的这个是没有问题的 已读回执是 读取消息的时间 收到消息 是你收到消息的时间
KevinGong

KevinGong 回答了问题 • 2018-05-21 14:01 • 1 个回复 不感兴趣

IOS和安卓不能互踢

赞同来自:

看到官网有文档这么写的
 
8687
 
所以说默认的行为有可能就是不同终端的同一账号可以同时登录。
 
看到官网有文档这么写的
 
8687
 
所以说默认的行为有可能就是不同终端的同一账号可以同时登录。
 
陈日明

陈日明 回答了问题 • 2018-05-22 14:31 • 1 个回复 不感兴趣

环信集成的一些疑问

赞同来自:

针对你的问题 进行回答:1. 服务端集成中涉及的那些接口是否有必要在服务端集成?
有必要,在服务器端集成是最规范的,减少客户端与远程服务器的交互能够有效的提高用户体验

2. 服务端集成可以做哪些客户端集成做不了的事情?
对于 用户体系: 服务器可以做 批量注... 显示全部 »
针对你的问题 进行回答:1. 服务端集成中涉及的那些接口是否有必要在服务端集成?
有必要,在服务器端集成是最规范的,减少客户端与远程服务器的交互能够有效的提高用户体验

2. 服务端集成可以做哪些客户端集成做不了的事情?
对于 用户体系: 服务器可以做 批量注册im用户,强制用户上下线,拉黑某个用户账号封禁解禁,重置im密码,根据时间条件下载历史消息文件,文件上传下载,群组的管理,聊天室的管理.

3. 服务端集成与仅导入用户体系后直接在客户端集成在本质上可能会有哪些区别?
对于用户体系集成的方面,客户端这些操作更容易暴露敏感信息,用户的聊天记录,也只能在本地缓存一些,但是换手机之后就拿不到了,在客户端而言;注册的时候也只能单个去注册一个im用户,而且只能做im用户的增加,其他的做不了,账号的封解禁也只能在服务端操作,客户端操作不了,本质区别 也就是相对而言,服务端管理起来更方便快捷安全,客户端做起来更麻烦一点,功能少一点
陈日明

陈日明 回答了问题 • 2018-06-04 09:38 • 2 个回复 不感兴趣

使用环信3.4.1的SDK无法编译

赞同来自:

无法编译的情况,原因是你在集成的时候 有没有正确引入module ,有没有在项目中重复引用,so文件路径有没有正确,这些原因都能导致编译失败,请贴出详细log
无法编译的情况,原因是你在集成的时候 有没有正确引入module ,有没有在项目中重复引用,so文件路径有没有正确,这些原因都能导致编译失败,请贴出详细log
陈日明

陈日明 回答了问题 • 2018-05-30 11:22 • 2 个回复 不感兴趣

app服务器聊天记录转换

赞同来自:

EMMessage是一个实体类,从服务器获取到数据 然后set进去就行
EMMessage是一个实体类,从服务器获取到数据 然后set进去就行
这个颜色动态设置就行了
在emjo相关的文件里面我还没找到
这个颜色动态设置就行了
在emjo相关的文件里面我还没找到
你需要监听好友状态 EMClient.getInstance().contactManager().setContactListener(new EMContactListener() {

@Override
public void onC... 显示全部 »
你需要监听好友状态 EMClient.getInstance().contactManager().setContactListener(new EMContactListener() {

@Override
public void onContactAgreed(String username) {
//好友请求被同意
}

@Override
public void onContactRefused(String username) {
//好友请求被拒绝
}

@Override
public void onContactInvited(String username, String reason) {
//收到好友邀请
}

@Override
public void onContactDeleted(String username) {
//被删除时回调此方法
}


@Override
public void onContactAdded(String username) {
//增加了联系人时回调此方法
}
}); 也就是zhe'd这段代码
并不是,这个聊天记录 还是需要你们后端集成一下环信,将环信的聊天纪录导入到自己服务器这样的话,随时拉取就不会初夏你您说的问题 服务器集成环信聊天记录 显示全部 »
并不是,这个聊天记录 还是需要你们后端集成一下环信,将环信的聊天纪录导入到自己服务器这样的话,随时拉取就不会初夏你您说的问题 服务器集成环信聊天记录
陈日明

陈日明 回答了问题 • 2018-06-28 09:10 • 1 个回复 不感兴趣

Android 环信点击好友发送视频的文件

赞同来自:

自己写页面
自己写页面
1:删除app\libs下面的hyphenatechat_3.5.0.jar
2:注销app中build.gradle  中的//api files('libs/hyphenatechat_3.5.0.jar')
3:在easeui中build.gradle中... 显示全部 »
1:删除app\libs下面的hyphenatechat_3.5.0.jar
2:注销app中build.gradle  中的//api files('libs/hyphenatechat_3.5.0.jar')
3:在easeui中build.gradle中  dependencies里面添加
configurations { all*.exclude group: 'com.android.support', module: 'support-v13' }
 
原因是hyphenatechat_3.5.0.jar重复了
已解决,是混淆打包的问题。
//2.x
-keep class com.hyphenate.** {*;} 
-dontwarn com.hyphenate.**
 
//3.x 
-keep class com.hyphenate.** {*;} 
-don... 显示全部 »
已解决,是混淆打包的问题。
//2.x
-keep class com.hyphenate.** {*;} 
-dontwarn com.hyphenate.**
 
//3.x 
-keep class com.hyphenate.** {*;} 
-dontwarn com.hyphenate.** 
-keep class com.superrtc.** {*;}
 
陈日明

陈日明 回答了问题 • 2018-07-18 15:22 • 2 个回复 不感兴趣

AS 中 easeui 导入easeui库报错

赞同来自:

这个情况并不是报错,我记得你已经提了这个问题,删除掉easeui里面的simpledemo,这个demo只是展示怎么去介入easeui的
这个情况并不是报错,我记得你已经提了这个问题,删除掉easeui里面的simpledemo,这个demo只是展示怎么去介入easeui的
我们肯定会自己服务器有唯一的id啊,现在是问问你们是否有返回环信的唯一id,然后我注册的时候传给后台一一对应。你说的方式是可以的,只是我怕用我们的id去注册的话如果修改了用户名,岂不是你们返回的id就变了?
我们肯定会自己服务器有唯一的id啊,现在是问问你们是否有返回环信的唯一id,然后我注册的时候传给后台一一对应。你说的方式是可以的,只是我怕用我们的id去注册的话如果修改了用户名,岂不是你们返回的id就变了?
自定义消息框 在easeui里面的xml文件里,你可以自己去找一下,昵称和头像,你可以使用5分钟demo里面的代码进行集成
自定义消息框 在easeui里面的xml文件里,你可以自己去找一下,昵称和头像,你可以使用5分钟demo里面的代码进行集成
lijiazhen

lijiazhen 回答了问题 • 2018-10-09 17:47 • 1 个回复 不感兴趣

通知栏点击跳转问题

赞同来自:

EaseUI.getInstance().getNotifier().setNotificationInfoProvider
重写这个方法
public Intent getLaunchIntent(EMMessage message)
返回你要跳转的inte... 显示全部 »
EaseUI.getInstance().getNotifier().setNotificationInfoProvider
重写这个方法
public Intent getLaunchIntent(EMMessage message)
返回你要跳转的intent
存自己服务器  扩展字段传过去
存自己服务器  扩展字段传过去
0
评论

2018科大讯飞全球1024开发者节,来了! 1024程序员节 1024大会 科大讯飞

beyond 发表了文章 • 536 次浏览 • 2018-09-30 15:14 • 来自相关话题

10月24日-10月25日,安徽·合肥,2018届科大讯飞全球1024开发者节即将重磅开启,邀请MIT科技创新专家等大咖,还有10多场AI+分论坛、1000+AI产品等你体验。点击阅读原文,即刻进入官网抢票!





如果要用一样事物来形容科技,非光莫属。科技革新如光一般照亮我们的生活,让我们看到未来。

讯飞开放平台自2010年成立以来,目前已拥有83万开发者。我们一起在“追光之旅”中不断探索万物互联的缤纷世界,攀登AI之巅!

秉承“开放·合作·生态·共享”理念。2018届科大讯飞全球1024开发者节,我们为开发者们带来更多精彩。 
今年1024,你将看到
 
1.AI领军人物齐聚前沿论坛
如果你想与AI商业化专家吴霁虹、斯坦福大学教授蒋里、科大讯飞董事长刘庆峰、AI大学校长胡郁、讯飞华南公司总裁杜兰、智慧医疗专家陶晓东、MIT35岁以下科技创新青年魏思等AI领袖面对面,请一定不要错过本届1024开发者节。
 
2.1024计划全新发布
2017届全球1024开发者节,“1024计划”重磅推出。从“AI教引”、“AI生态”、“AI公益”三个方面,辅导、赋能开发者,关注公益事业。

回顾:重磅 | 科大讯飞发布《1024计划》,AI点亮全球

今年开发者节,全新“1024计划”将现场公布,新的计划将:

更大规模:覆盖更宽广的领域,让更多用户感受到AI所带来的便捷!

更大力度:用更先进的AI科技,更全面的支持策略,赋能未来!
 
3.最强AI开发者现场终极PK
科大讯飞2018年面向全球正式发起首届“顶天立地”iFLYTEK AI开发者大赛。历时4个月,大赛吸引了1万余名世界各地的优秀开发者踊跃参加,共计收到全球3千多支团队提交参赛作品。

10月24日,应用开发AI挑战赛总决赛9支团队,方言种类识别AI挑战赛总决赛8支团队将在开发者节现场展开AI开发技能的巅峰对决和终极PK。
 
4.公益音乐节,以AI之名传递温暖
2018届科大讯飞全球1024开发者节,将延续“三声有幸”的公益主题,盛邀公益音乐人亲临,为AI献声!以歌声传达鼓舞人心的力量,用音乐唤醒人们对公益的认知。另外,现场还将有特别呈现的“公益天使”带来的的额外惊喜!

注:AI公益音乐节所有门票收入将全部用于讯飞“三声有幸”公益计划。
 
5.2大展区,50+展位,1000+黑科技
在AI体验区,我们准备了多个神秘环节,带给你突破想象力边界的AI旅程。我们用1000+AI黑科技展示对生活的思考。
 
在生态展区,科大讯飞集结自己的生态合作伙伴,在50多个展位上展示最前沿的AI落地产品和服务。覆盖企业服务、图像识别、健康医疗、公益、大数据、智能家居、机器人、智能营销、智能招聘……为你带来最in的场景化体验。

AIUI、讯飞医疗、AI大学、智慧城市……科技展区将带来科大讯飞各事业群的最新成果,从大型电信级应用到小型嵌入式应用;从手机到车载;从家电到玩具,你将体验能够满足不同应用环境的各种惊喜。


6.行业大咖做客,10+场AI细分领域论坛
医疗、客服、营销、家居、机器人、城市、AIoT……本届1024开发者节围绕等10多场AI+场景举行深度分论坛。

知名企业的资深大咖将与大家分享AI时代的见解,在圆桌互动交流彼此观点。我们将会展示讯飞和合作伙伴之间共创的各项核心赛道的AI风采,以科技之心为开发者赋能,用AI之光点亮全行业!

7.丰富互动,亲身参与“追光之旅”
你既可以与AI大咖零距离沟通,围绕AI发展进行思维碰撞,也可以现场与他人分享你对AI产品的使用体验。在2018届科大讯飞全球1024开发者节,你不仅是一名AI巅峰领域的见证者,更是追逐AI科技之光的参与者!

如何开启我的“追光之旅”?2018届全球1024开发者节购票通道已正式开启

贵宾票、嘉宾票、学生票、音乐节票任你选择

点击购买门票即刻抢票





想了解更多关于票务及优惠方面的信息,快添加AI小助手微信号:iFLYTEKAI





 
我们希望全球1024开发者节可以构建人工智能生态链接,打造科技文化独家品牌,影响全球人工智能开发者、爱好者,用人工智能共创美好世界!

2018届科大讯飞全球1024开发者节将用最新最全的人工智能技术和产品促进跨行业链接、多领域碰撞、新技术开发,以科技之光、生态之念,立足当下、放眼未来!

凡是过往,皆为序曲。AI+带来的无限可能,都在此刻埋下伏笔。1024,许你未来之光! 查看全部
10月24日-10月25日,安徽·合肥,2018届科大讯飞全球1024开发者节即将重磅开启,邀请MIT科技创新专家等大咖,还有10多场AI+分论坛、1000+AI产品等你体验。点击阅读原文,即刻进入官网抢票!

微信图片_20180930150850.jpg

如果要用一样事物来形容科技,非光莫属。科技革新如光一般照亮我们的生活,让我们看到未来。

讯飞开放平台自2010年成立以来,目前已拥有83万开发者。我们一起在“追光之旅”中不断探索万物互联的缤纷世界,攀登AI之巅!

秉承“开放·合作·生态·共享”理念。2018届科大讯飞全球1024开发者节,我们为开发者们带来更多精彩。 
今年1024,你将看到
 
1.AI领军人物齐聚前沿论坛
如果你想与AI商业化专家吴霁虹、斯坦福大学教授蒋里、科大讯飞董事长刘庆峰、AI大学校长胡郁、讯飞华南公司总裁杜兰、智慧医疗专家陶晓东、MIT35岁以下科技创新青年魏思等AI领袖面对面,请一定不要错过本届1024开发者节。
 
2.1024计划全新发布
2017届全球1024开发者节,“1024计划”重磅推出。从“AI教引”、“AI生态”、“AI公益”三个方面,辅导、赋能开发者,关注公益事业。

回顾:重磅 | 科大讯飞发布《1024计划》,AI点亮全球

今年开发者节,全新“1024计划”将现场公布,新的计划将:

更大规模:覆盖更宽广的领域,让更多用户感受到AI所带来的便捷!

更大力度:用更先进的AI科技,更全面的支持策略,赋能未来!
 
3.最强AI开发者现场终极PK
科大讯飞2018年面向全球正式发起首届“顶天立地”iFLYTEK AI开发者大赛。历时4个月,大赛吸引了1万余名世界各地的优秀开发者踊跃参加,共计收到全球3千多支团队提交参赛作品。

10月24日,应用开发AI挑战赛总决赛9支团队,方言种类识别AI挑战赛总决赛8支团队将在开发者节现场展开AI开发技能的巅峰对决和终极PK。
 
4.公益音乐节,以AI之名传递温暖
2018届科大讯飞全球1024开发者节,将延续“三声有幸”的公益主题,盛邀公益音乐人亲临,为AI献声!以歌声传达鼓舞人心的力量,用音乐唤醒人们对公益的认知。另外,现场还将有特别呈现的“公益天使”带来的的额外惊喜!

注:AI公益音乐节所有门票收入将全部用于讯飞“三声有幸”公益计划。
 
5.2大展区,50+展位,1000+黑科技
在AI体验区,我们准备了多个神秘环节,带给你突破想象力边界的AI旅程。我们用1000+AI黑科技展示对生活的思考。
 
在生态展区,科大讯飞集结自己的生态合作伙伴,在50多个展位上展示最前沿的AI落地产品和服务。覆盖企业服务、图像识别、健康医疗、公益、大数据、智能家居、机器人、智能营销、智能招聘……为你带来最in的场景化体验。

AIUI、讯飞医疗、AI大学、智慧城市……科技展区将带来科大讯飞各事业群的最新成果,从大型电信级应用到小型嵌入式应用;从手机到车载;从家电到玩具,你将体验能够满足不同应用环境的各种惊喜。


6.行业大咖做客,10+场AI细分领域论坛
医疗、客服、营销、家居、机器人、城市、AIoT……本届1024开发者节围绕等10多场AI+场景举行深度分论坛。

知名企业的资深大咖将与大家分享AI时代的见解,在圆桌互动交流彼此观点。我们将会展示讯飞和合作伙伴之间共创的各项核心赛道的AI风采,以科技之心为开发者赋能,用AI之光点亮全行业!

7.丰富互动,亲身参与“追光之旅”
你既可以与AI大咖零距离沟通,围绕AI发展进行思维碰撞,也可以现场与他人分享你对AI产品的使用体验。在2018届科大讯飞全球1024开发者节,你不仅是一名AI巅峰领域的见证者,更是追逐AI科技之光的参与者!

如何开启我的“追光之旅”?2018届全球1024开发者节购票通道已正式开启

贵宾票、嘉宾票、学生票、音乐节票任你选择

点击购买门票即刻抢票

微信图片_20180930151332.jpg

想了解更多关于票务及优惠方面的信息,快添加AI小助手微信号:iFLYTEKAI

微信图片_20180930151351.jpg

 
我们希望全球1024开发者节可以构建人工智能生态链接,打造科技文化独家品牌,影响全球人工智能开发者、爱好者,用人工智能共创美好世界!

2018届科大讯飞全球1024开发者节将用最新最全的人工智能技术和产品促进跨行业链接、多领域碰撞、新技术开发,以科技之光、生态之念,立足当下、放眼未来!

凡是过往,皆为序曲。AI+带来的无限可能,都在此刻埋下伏笔。1024,许你未来之光!
3
评论

【开源项目】全国首个开源直播小程序源码 环信公开课 小程序 直播

beyond 发表了文章 • 2125 次浏览 • 2018-07-20 17:30 • 来自相关话题

今天你看直播了吗?拥有10亿微信生态用户的小程序已经成为了继移动互联后的又一个现象级风口,随着微信小程序对外开放实时音视频录制及播放等更多连接能力,小程序与直播强强联合,在各行各业找到了非常多的玩法,小程序直播相比微信直播和APP直播更加简洁、流畅、低延时、多入口等众多优势迅速向商业直播领域及泛娱乐直播领域蔓延。从小游戏、内容付费、工具、大数据、社交电商创业者到传统品牌商们,都在努力搭上小程序直播这辆快车,以免错过微信生态里新的流量洼地。
 





作为一名环信生态圈资深开发者,本着对技术的热衷,对环信的眷恋和对党的忠诚,基于环信即时通讯云写了“直播购物小程序”,目前项目源码已全部免费开放,希望对有需求的企业和开发者提供一个思路和参考。
直播购物小程序源码github地址:https://github.com/YuTongNetworkTechnology/wechat_live/tree/master 
git打不开可直接点下面链接下载


小程序直播demo_2018-06-21.zip







直播购物小程序运行预览图 
 
小程序体验指南(仅需两步):
 
1、下载微信小程序开发工具,下载地址:https://developers.weixin.qq.c ... .html 
 




2、导入源码:将附件的源码解压直接导入 







环信小程序直播技术文档
一、 使用的技术
1、 环信IM直播室。
2、 微信小程序实时音视频播放组件live-player。
3、 推流软件(obs、易推流)等推流。
4、 视频流服务器(UCLOUD、七牛、腾讯)等视频流服务器。
二、 系统使用流程。
1、 视频推流软件将视频流推到流服务器。
2、 打开视频直播demo小程序注册环信账号。
3、 进入软件直播室进行测试。
三、 技术流程及使用的SDk
1、 注册环信账号
打开https://www.easemob.com/ 环信官网,点击右上角注册按钮,选择[注册即时通讯云]




填写对相关信息进行注册





注册成功后进行登录




注:新注册用户需进行账号的认证。
2、 直播应用创建
登录成功点击应用列表选择创建应用




输入应用名称等信息
 





创建成功后点击应用进入





需要注意的是应用的OrgName 和AppName这两个是以后都需要用到的两个参数变量




3、 直播创建
1)在创建直播之前需要对应用进行设置首先需要设置应用的直播流地址
第一步获取应用管理员的Tokencurl -X POST "https://a1.easemob.com/[应用OrgName]/[应用AppName]/token" -d '{"grant_type":"client_credentials","client_id":"[应用client_id]","client_secret":"[应用] client_secret"}'返回格式{
"access_token":"YWMtWY779DgJEeS2h9OR7fw4QgAAAUmO4Qukwd9cfJSpkWHiOa7MCSk0MrkVIco",
"expires_in":5184000,
"application":"c03b3e30-046a-11e4-8ed1-5701cdaaa0e4"












第二步设置直播流地址curl -X POST -H "Authorization: Bearer [管理员Token]" " https://a1.easemob.com/[应用OrgName]/[应用AppName]/liverooms/stream_url -d '{"pc_pull":"[pc拉流地址]","pc_push":"[pc推流地址]","mobile_pull":"[手机拉流地址]","mobile_push":"[手机推流地址]"}'"成功返回格式:{
"action": "post",
"application": "e1a09de0-0e03-11e7-ad8e-a1d913615409",
"uri": "http://127.0.0.1:8080/easemob- ... ot%3B,
"entities": [ ],
"data": {
"pc_pull": true,
"mobile_push": true,
"mobile_pull": true,
"pc_push": true
},
"timestamp": 1494084474885,
"duration": 1,
"organization": "easemob-demo",
"applicationName": "chatdemoui"
}












2)创建主播
点击IM用户





点击注册IM用户





填写用户信息





创建用户的过程同样也可以通过REST API形式进行curl -X POST -i " https://a1.easemob.com/[应用OrgName]/[应用AppName]/users" -d '{"username":"[用户名]","password":"[密码]"}'
注:应用必须为开放注册





将注册的用户添加为主播curl -X POST -H "Authorization: [管理员Token]" https://a1.easemob.com/[应用OrgName]/[应用AppName]/super_admin -d'{"superadmin":"[IM用户名]"}'返回结果示例:{
"action": "post",
"application": "4d7e4ba0-dc4a-11e3-90d5-e1ffbaacdaf5",
"uri": "http://127.0.0.1:8080/easemob- ... ot%3B,
"entities": [ ],
"data": {
"result": "success"
},
"timestamp": 1496236798886,
"duration": 0,
"organization": "easemob-demo",
"applicationName": "chatdemoui"
}












3)创建直播
点击直播





点击新建房间





填写房间信息




创建房间同时也可以使用REST API形式进行详情可以查看http://docs.easemob.com/im/live/server-integration环信官方文档。
4、 小程序demo集成使用
小程序直播购物demo集成官方WebIM SDK详情请查看https://github.com/easemob/webim-weixin-xcx
Demo具体配置如下
打开demo 下sdk配置文件





修改appkey为自己应用的appkey





打开pages/live/index.js修改房间默认拉流地址及直播间房间号





四、 扩展说明
Demo中房间为固定测试房间,实际使用中应获取环信直播的房间信息及房间列表。具体如下:
获取直播间列表:curl -X GET -H "Authorization: Bearer [用户Token]" https://a1.easemob.com/[应用OrgName]/[应用AppName]/liverooms?ongoing=true&limit=[获取数量]&cursor=[游标地址(不填写为充开始查询)]
响应:{
"action": "get",
"application": "4d7e4ba0-dc4a-11e3-90d5-e1ffbaacdaf5",
"params": {
"cursor": [
"ZGNiMjRmNGY1YjczYjlhYTNkYjk1MDY2YmEyNzFmODQ6aW06Y2hhdHJvb206ZWFzZW1vYi1kZW1vI2NoYXRkZW1vdWk6MzE"
],
"ongoing": [
"true"
],
"limit": [
"2"
]
},
"uri": "http://127.0.0.1:8080/easemob- ... ot%3B,
"entities": [ ],
"data": [
{
"id": "1924",
"chatroom_id": "17177265635330",
"title": "具体了",
"desc": "就咯",
"startTime": 1495779917352,
"endTime": 1495779917352,
"anchor": "wuls",
"gift_count": 0,
"praise_count": 0,
"current_user_count": 8,
"max_user_count": 9,
"status": "ongoing",
"cover_picture_url": "",
"pc_pull_url": "rtmp://vlive3.rtmp.cdn.ucloud.com.cn/ucloud/easemob-demo_chatdemoui_1924_1",
"pc_push_url": "rtmp://publish3.cdn.ucloud.com.cn/ucloud/easemob-demo_chatdemoui_1924_1",
"mobile_pull_url": "rtmp://vlive3.rtmp.cdn.ucloud.com.cn/ucloud/easemob-demo_chatdemoui_1924_1",
"mobile_push_url": "rtmp://publish3.cdn.ucloud.com.cn/ucloud/easemob-demo_chatdemoui_1924_1"
},
{
"id": "1922",
"chatroom_id": "17175003856897",
"title": "香山",
"desc": "随便",
"startTime": 1495777760957,
"endTime": 1495777760957,
"anchor": "sx001",
"gift_count": 0,
"praise_count": 8,
"current_user_count": 1,
"max_user_count": 3,
"status": "ongoing",
"cover_picture_url": "http://127.0.0.1:8080/easemob- ... ot%3B,
"pc_pull_url": "rtmp://vlive3.rtmp.cdn.ucloud.com.cn/ucloud/easemob-demo_chatdemoui_1922_1",
"pc_push_url": "rtmp://publish3.cdn.ucloud.com.cn/ucloud/easemob-demo_chatdemoui_1922_1",
"mobile_pull_url": "rtmp://vlive3.rtmp.cdn.ucloud.com.cn/ucloud/easemob-demo_chatdemoui_1922_1",
"mobile_push_url": "rtmp://publish3.cdn.ucloud.com.cn/ucloud/easemob-demo_chatdemoui_1922_1"
}
],
"timestamp": 1496303336669,
"duration": 0,
"organization": "easemob-demo",
"applicationName": "chatdemoui",
"cursor": "ZGNiMjRmNGY1YjczYjlhYTNkYjk1MDY2YmEyNzFmODQ6aW06Y2hhdHJvb206ZWFzZW1vYi1kZW1vI2NoYXRkZW1vdWk6NDk",
"count": 2
}












获取直播间详情:curl -X GET -H "Authorization: Bearer [用户Token]" " https://a1.easemob.com/[应用OrgName]/[应用AppName]/[房间id]/status"响应:{
"action": "get",
"application": "4d7e4ba0-dc4a-11e3-90d5-e1ffbaacdaf5",
"uri": "http://127.0.0.1:8080/easemob- ... ot%3B,
"entities": [ ],
"data": {
"liveRoomID": "1946",
"status": "ongoing"
},
"timestamp": 1496234759930,
"duration": 0,
"organization": "easemob-demo",
"applicationName": "chatdemoui",
"count": 0
}














 
使用环信直播购物小程序遇到任何问题欢迎跟帖讨论。 查看全部
今天你看直播了吗?
拥有10亿微信生态用户的小程序已经成为了继移动互联后的又一个现象级风口,随着微信小程序对外开放实时音视频录制及播放等更多连接能力,小程序与直播强强联合,在各行各业找到了非常多的玩法,小程序直播相比微信直播和APP直播更加简洁、流畅、低延时、多入口等众多优势迅速向商业直播领域及泛娱乐直播领域蔓延。从小游戏、内容付费、工具、大数据、社交电商创业者到传统品牌商们,都在努力搭上小程序直播这辆快车,以免错过微信生态里新的流量洼地。
 
微信图片_20180725162426.jpg


作为一名环信生态圈资深开发者,本着对技术的热衷,对环信的眷恋和对党的忠诚,基于环信即时通讯云写了“直播购物小程序”,目前项目源码已全部免费开放,希望对有需求的企业和开发者提供一个思路和参考。
直播购物小程序源码github地址:https://github.com/YuTongNetworkTechnology/wechat_live/tree/master 
git打不开可直接点下面链接下载



预览图.jpg

直播购物小程序运行预览图 
 
小程序体验指南(仅需两步):
 
1、下载微信小程序开发工具,下载地址:https://developers.weixin.qq.c ... .html 
 
Catch9A07(07-20-17-38-30).jpg

2、导入源码:将附件的源码解压直接导入 


Catch1C69(07-20-17-38-30).jpg


环信小程序直播技术文档
一、 使用的技术
1、 环信IM直播室。
2、 微信小程序实时音视频播放组件live-player。
3、 推流软件(obs、易推流)等推流。
4、 视频流服务器(UCLOUD、七牛、腾讯)等视频流服务器。
二、 系统使用流程。
1、 视频推流软件将视频流推到流服务器。
2、 打开视频直播demo小程序注册环信账号。
3、 进入软件直播室进行测试。
三、 技术流程及使用的SDk
1、 注册环信账号
打开https://www.easemob.com/ 环信官网,点击右上角注册按钮,选择[注册即时通讯云]
1.png

填写对相关信息进行注册

2.png

注册成功后进行登录
3.png

注:新注册用户需进行账号的认证。
2、 直播应用创建
登录成功点击应用列表选择创建应用
4.png

输入应用名称等信息
 

5.png

创建成功后点击应用进入

6.png

需要注意的是应用的OrgName 和AppName这两个是以后都需要用到的两个参数变量
7.png

3、 直播创建
1)在创建直播之前需要对应用进行设置首先需要设置应用的直播流地址
第一步获取应用管理员的Token
curl -X POST "https://a1.easemob.com/[应用OrgName]/[应用AppName]/token" -d '{"grant_type":"client_credentials","client_id":"[应用client_id]","client_secret":"[应用] client_secret"}'
返回格式
{
"access_token":"YWMtWY779DgJEeS2h9OR7fw4QgAAAUmO4Qukwd9cfJSpkWHiOa7MCSk0MrkVIco",
"expires_in":5184000,
"application":"c03b3e30-046a-11e4-8ed1-5701cdaaa0e4"












第二步设置直播流地址
curl -X POST -H "Authorization: Bearer [管理员Token]"  " https://a1.easemob.com/[应用OrgName]/[应用AppName]/liverooms/stream_url -d '{"pc_pull":"[pc拉流地址]","pc_push":"[pc推流地址]","mobile_pull":"[手机拉流地址]","mobile_push":"[手机推流地址]"}'"
成功返回格式:
{
"action": "post",
"application": "e1a09de0-0e03-11e7-ad8e-a1d913615409",
"uri": "http://127.0.0.1:8080/easemob- ... ot%3B,
"entities": [ ],
"data": {
"pc_pull": true,
"mobile_push": true,
"mobile_pull": true,
"pc_push": true
},
"timestamp": 1494084474885,
"duration": 1,
"organization": "easemob-demo",
"applicationName": "chatdemoui"
}












2)创建主播
点击IM用户

8.png

点击注册IM用户

9.png

填写用户信息

10.png

创建用户的过程同样也可以通过REST API形式进行
curl -X POST -i " https://a1.easemob.com/[应用OrgName]/[应用AppName]/users" -d '{"username":"[用户名]","password":"[密码]"}'

注:应用必须为开放注册

11.png

将注册的用户添加为主播
curl -X POST -H "Authorization: [管理员Token]"  https://a1.easemob.com/[应用OrgName]/[应用AppName]/super_admin -d'{"superadmin":"[IM用户名]"}'
返回结果示例:
{
"action": "post",
"application": "4d7e4ba0-dc4a-11e3-90d5-e1ffbaacdaf5",
"uri": "http://127.0.0.1:8080/easemob- ... ot%3B,
"entities": [ ],
"data": {
"result": "success"
},
"timestamp": 1496236798886,
"duration": 0,
"organization": "easemob-demo",
"applicationName": "chatdemoui"
}












3)创建直播
点击直播

12.png

点击新建房间

13.png

填写房间信息
14.png

创建房间同时也可以使用REST API形式进行详情可以查看http://docs.easemob.com/im/live/server-integration环信官方文档。
4、 小程序demo集成使用
小程序直播购物demo集成官方WebIM SDK详情请查看https://github.com/easemob/webim-weixin-xcx
Demo具体配置如下
打开demo 下sdk配置文件

15.png

修改appkey为自己应用的appkey

16.png

打开pages/live/index.js修改房间默认拉流地址及直播间房间号

17.png

四、 扩展说明
Demo中房间为固定测试房间,实际使用中应获取环信直播的房间信息及房间列表。具体如下:
获取直播间列表:
curl -X GET -H "Authorization: Bearer  [用户Token]"  https://a1.easemob.com/[应用OrgName]/[应用AppName]/liverooms?ongoing=true&limit=[获取数量]&cursor=[游标地址(不填写为充开始查询)]

响应:
{
"action": "get",
"application": "4d7e4ba0-dc4a-11e3-90d5-e1ffbaacdaf5",
"params": {
"cursor": [
"ZGNiMjRmNGY1YjczYjlhYTNkYjk1MDY2YmEyNzFmODQ6aW06Y2hhdHJvb206ZWFzZW1vYi1kZW1vI2NoYXRkZW1vdWk6MzE"
],
"ongoing": [
"true"
],
"limit": [
"2"
]
},
"uri": "http://127.0.0.1:8080/easemob- ... ot%3B,
"entities": [ ],
"data": [
{
"id": "1924",
"chatroom_id": "17177265635330",
"title": "具体了",
"desc": "就咯",
"startTime": 1495779917352,
"endTime": 1495779917352,
"anchor": "wuls",
"gift_count": 0,
"praise_count": 0,
"current_user_count": 8,
"max_user_count": 9,
"status": "ongoing",
"cover_picture_url": "",
"pc_pull_url": "rtmp://vlive3.rtmp.cdn.ucloud.com.cn/ucloud/easemob-demo_chatdemoui_1924_1",
"pc_push_url": "rtmp://publish3.cdn.ucloud.com.cn/ucloud/easemob-demo_chatdemoui_1924_1",
"mobile_pull_url": "rtmp://vlive3.rtmp.cdn.ucloud.com.cn/ucloud/easemob-demo_chatdemoui_1924_1",
"mobile_push_url": "rtmp://publish3.cdn.ucloud.com.cn/ucloud/easemob-demo_chatdemoui_1924_1"
},
{
"id": "1922",
"chatroom_id": "17175003856897",
"title": "香山",
"desc": "随便",
"startTime": 1495777760957,
"endTime": 1495777760957,
"anchor": "sx001",
"gift_count": 0,
"praise_count": 8,
"current_user_count": 1,
"max_user_count": 3,
"status": "ongoing",
"cover_picture_url": "http://127.0.0.1:8080/easemob- ... ot%3B,
"pc_pull_url": "rtmp://vlive3.rtmp.cdn.ucloud.com.cn/ucloud/easemob-demo_chatdemoui_1922_1",
"pc_push_url": "rtmp://publish3.cdn.ucloud.com.cn/ucloud/easemob-demo_chatdemoui_1922_1",
"mobile_pull_url": "rtmp://vlive3.rtmp.cdn.ucloud.com.cn/ucloud/easemob-demo_chatdemoui_1922_1",
"mobile_push_url": "rtmp://publish3.cdn.ucloud.com.cn/ucloud/easemob-demo_chatdemoui_1922_1"
}
],
"timestamp": 1496303336669,
"duration": 0,
"organization": "easemob-demo",
"applicationName": "chatdemoui",
"cursor": "ZGNiMjRmNGY1YjczYjlhYTNkYjk1MDY2YmEyNzFmODQ6aW06Y2hhdHJvb206ZWFzZW1vYi1kZW1vI2NoYXRkZW1vdWk6NDk",
"count": 2
}












获取直播间详情:
curl -X GET -H "Authorization: Bearer [用户Token]" " https://a1.easemob.com/[应用OrgName]/[应用AppName]/[房间id]/status"
响应:
{
"action": "get",
"application": "4d7e4ba0-dc4a-11e3-90d5-e1ffbaacdaf5",
"uri": "http://127.0.0.1:8080/easemob- ... ot%3B,
"entities": [ ],
"data": {
"liveRoomID": "1946",
"status": "ongoing"
},
"timestamp": 1496234759930,
"duration": 0,
"organization": "easemob-demo",
"applicationName": "chatdemoui",
"count": 0
}














 
使用环信直播购物小程序遇到任何问题欢迎跟帖讨论。
18
评论

【新手快速入门】集成环信常见问题+解决方案汇总 常见问题

dujiepeng 发表了文章 • 17305 次浏览 • 2017-05-22 15:51 • 来自相关话题

   这里整理了集成环信的常见问题和一些功能的实现思路,希望能帮助到大家。感谢热心的开发者贡献,大家在观看过程中有不明白的地方欢迎直接跟帖咨询。
 
ios篇
APNs证书创建和上传到环信后台头像昵称的简述和处理方案音视频离线推送Demo实现环信服务器聊天记录保存多久?离线收不到好友请求IOS中环信聊天窗口如何实现文件发送和预览的功能ios集成常见问题环信推送的一些常见问题实现名片|红包|话题聊天室等自定义cell
 
Android篇
Android sdk 的两种导入方式环信3.0SDK集成小米推送教程EaseUI库中V4、v7包冲突解决方案Android EaseUI里的百度地图替换为高德地图android扩展消息(名片集成)关于会话列表的置顶聊天java.lang.UnsatisfiedLinkError: 的问题android 端 app 后台被杀死收不到消息的解决方案
昵称头像篇
android中如何显示开发者服务器上的昵称和头像 Android中显示头像(接上一篇文章看)环信(Android)设置头像和昵称的方法(最简单暴力的基于环信demo的集成)IOS中如何显示开发者服务器上的昵称和头像【环信公开课第12期视频回放】-所有关于环信IM昵称头像的问题听这课就够了
 
直播篇
一言不合你就搞个直播APP
 
客服集成
IM-SDK和客服SDK并存开发指南—Android篇IM-SDK和客服SDK并存开发指南—iOS篇
 
开源项目
Android简版demoios简版demo凡信2.0:超仿微信的开源项目 凡信3.0:携直播和红包而来高仿微信:Github 3,515 Star方圆十里:环信编程大赛冠军项目泛聊:定一个小目标写一个QQSlack聊天机器人:一天时间做一个聊天机器人TV视频通话:在电视上视频通话视频通话:Android手机视频通话酷信:ios高仿微信公众号助手:与订阅用户聊天沟通
 
持续更新ing...小伙伴们还有什么想知道欢迎跟帖提出。
  查看全部
   这里整理了集成环信的常见问题和一些功能的实现思路,希望能帮助到大家。感谢热心的开发者贡献,大家在观看过程中有不明白的地方欢迎直接跟帖咨询。
 
ios篇

 
Android篇

昵称头像篇

 
直播篇
  1. 一言不合你就搞个直播APP

 
客服集成
  1. IM-SDK和客服SDK并存开发指南—Android篇
  2. IM-SDK和客服SDK并存开发指南—iOS篇

 
开源项目

 
持续更新ing...小伙伴们还有什么想知道欢迎跟帖提出。
 
9
回复

收集基于环信SDK开发的开源项目 开源项目

xiaoyan2015 回复了问题 • 12 人关注 • 10685 次浏览 • 2018-08-18 10:42 • 来自相关话题

0
评论

2018科大讯飞全球1024开发者节,来了! 1024程序员节 1024大会 科大讯飞

beyond 发表了文章 • 536 次浏览 • 2018-09-30 15:14 • 来自相关话题

10月24日-10月25日,安徽·合肥,2018届科大讯飞全球1024开发者节即将重磅开启,邀请MIT科技创新专家等大咖,还有10多场AI+分论坛、1000+AI产品等你体验。点击阅读原文,即刻进入官网抢票!





如果要用一样事物来形容科技,非光莫属。科技革新如光一般照亮我们的生活,让我们看到未来。

讯飞开放平台自2010年成立以来,目前已拥有83万开发者。我们一起在“追光之旅”中不断探索万物互联的缤纷世界,攀登AI之巅!

秉承“开放·合作·生态·共享”理念。2018届科大讯飞全球1024开发者节,我们为开发者们带来更多精彩。 
今年1024,你将看到
 
1.AI领军人物齐聚前沿论坛
如果你想与AI商业化专家吴霁虹、斯坦福大学教授蒋里、科大讯飞董事长刘庆峰、AI大学校长胡郁、讯飞华南公司总裁杜兰、智慧医疗专家陶晓东、MIT35岁以下科技创新青年魏思等AI领袖面对面,请一定不要错过本届1024开发者节。
 
2.1024计划全新发布
2017届全球1024开发者节,“1024计划”重磅推出。从“AI教引”、“AI生态”、“AI公益”三个方面,辅导、赋能开发者,关注公益事业。

回顾:重磅 | 科大讯飞发布《1024计划》,AI点亮全球

今年开发者节,全新“1024计划”将现场公布,新的计划将:

更大规模:覆盖更宽广的领域,让更多用户感受到AI所带来的便捷!

更大力度:用更先进的AI科技,更全面的支持策略,赋能未来!
 
3.最强AI开发者现场终极PK
科大讯飞2018年面向全球正式发起首届“顶天立地”iFLYTEK AI开发者大赛。历时4个月,大赛吸引了1万余名世界各地的优秀开发者踊跃参加,共计收到全球3千多支团队提交参赛作品。

10月24日,应用开发AI挑战赛总决赛9支团队,方言种类识别AI挑战赛总决赛8支团队将在开发者节现场展开AI开发技能的巅峰对决和终极PK。
 
4.公益音乐节,以AI之名传递温暖
2018届科大讯飞全球1024开发者节,将延续“三声有幸”的公益主题,盛邀公益音乐人亲临,为AI献声!以歌声传达鼓舞人心的力量,用音乐唤醒人们对公益的认知。另外,现场还将有特别呈现的“公益天使”带来的的额外惊喜!

注:AI公益音乐节所有门票收入将全部用于讯飞“三声有幸”公益计划。
 
5.2大展区,50+展位,1000+黑科技
在AI体验区,我们准备了多个神秘环节,带给你突破想象力边界的AI旅程。我们用1000+AI黑科技展示对生活的思考。
 
在生态展区,科大讯飞集结自己的生态合作伙伴,在50多个展位上展示最前沿的AI落地产品和服务。覆盖企业服务、图像识别、健康医疗、公益、大数据、智能家居、机器人、智能营销、智能招聘……为你带来最in的场景化体验。

AIUI、讯飞医疗、AI大学、智慧城市……科技展区将带来科大讯飞各事业群的最新成果,从大型电信级应用到小型嵌入式应用;从手机到车载;从家电到玩具,你将体验能够满足不同应用环境的各种惊喜。


6.行业大咖做客,10+场AI细分领域论坛
医疗、客服、营销、家居、机器人、城市、AIoT……本届1024开发者节围绕等10多场AI+场景举行深度分论坛。

知名企业的资深大咖将与大家分享AI时代的见解,在圆桌互动交流彼此观点。我们将会展示讯飞和合作伙伴之间共创的各项核心赛道的AI风采,以科技之心为开发者赋能,用AI之光点亮全行业!

7.丰富互动,亲身参与“追光之旅”
你既可以与AI大咖零距离沟通,围绕AI发展进行思维碰撞,也可以现场与他人分享你对AI产品的使用体验。在2018届科大讯飞全球1024开发者节,你不仅是一名AI巅峰领域的见证者,更是追逐AI科技之光的参与者!

如何开启我的“追光之旅”?2018届全球1024开发者节购票通道已正式开启

贵宾票、嘉宾票、学生票、音乐节票任你选择

点击购买门票即刻抢票





想了解更多关于票务及优惠方面的信息,快添加AI小助手微信号:iFLYTEKAI





 
我们希望全球1024开发者节可以构建人工智能生态链接,打造科技文化独家品牌,影响全球人工智能开发者、爱好者,用人工智能共创美好世界!

2018届科大讯飞全球1024开发者节将用最新最全的人工智能技术和产品促进跨行业链接、多领域碰撞、新技术开发,以科技之光、生态之念,立足当下、放眼未来!

凡是过往,皆为序曲。AI+带来的无限可能,都在此刻埋下伏笔。1024,许你未来之光! 查看全部
10月24日-10月25日,安徽·合肥,2018届科大讯飞全球1024开发者节即将重磅开启,邀请MIT科技创新专家等大咖,还有10多场AI+分论坛、1000+AI产品等你体验。点击阅读原文,即刻进入官网抢票!

微信图片_20180930150850.jpg

如果要用一样事物来形容科技,非光莫属。科技革新如光一般照亮我们的生活,让我们看到未来。

讯飞开放平台自2010年成立以来,目前已拥有83万开发者。我们一起在“追光之旅”中不断探索万物互联的缤纷世界,攀登AI之巅!

秉承“开放·合作·生态·共享”理念。2018届科大讯飞全球1024开发者节,我们为开发者们带来更多精彩。 
今年1024,你将看到
 
1.AI领军人物齐聚前沿论坛
如果你想与AI商业化专家吴霁虹、斯坦福大学教授蒋里、科大讯飞董事长刘庆峰、AI大学校长胡郁、讯飞华南公司总裁杜兰、智慧医疗专家陶晓东、MIT35岁以下科技创新青年魏思等AI领袖面对面,请一定不要错过本届1024开发者节。
 
2.1024计划全新发布
2017届全球1024开发者节,“1024计划”重磅推出。从“AI教引”、“AI生态”、“AI公益”三个方面,辅导、赋能开发者,关注公益事业。

回顾:重磅 | 科大讯飞发布《1024计划》,AI点亮全球

今年开发者节,全新“1024计划”将现场公布,新的计划将:

更大规模:覆盖更宽广的领域,让更多用户感受到AI所带来的便捷!

更大力度:用更先进的AI科技,更全面的支持策略,赋能未来!
 
3.最强AI开发者现场终极PK
科大讯飞2018年面向全球正式发起首届“顶天立地”iFLYTEK AI开发者大赛。历时4个月,大赛吸引了1万余名世界各地的优秀开发者踊跃参加,共计收到全球3千多支团队提交参赛作品。

10月24日,应用开发AI挑战赛总决赛9支团队,方言种类识别AI挑战赛总决赛8支团队将在开发者节现场展开AI开发技能的巅峰对决和终极PK。
 
4.公益音乐节,以AI之名传递温暖
2018届科大讯飞全球1024开发者节,将延续“三声有幸”的公益主题,盛邀公益音乐人亲临,为AI献声!以歌声传达鼓舞人心的力量,用音乐唤醒人们对公益的认知。另外,现场还将有特别呈现的“公益天使”带来的的额外惊喜!

注:AI公益音乐节所有门票收入将全部用于讯飞“三声有幸”公益计划。
 
5.2大展区,50+展位,1000+黑科技
在AI体验区,我们准备了多个神秘环节,带给你突破想象力边界的AI旅程。我们用1000+AI黑科技展示对生活的思考。
 
在生态展区,科大讯飞集结自己的生态合作伙伴,在50多个展位上展示最前沿的AI落地产品和服务。覆盖企业服务、图像识别、健康医疗、公益、大数据、智能家居、机器人、智能营销、智能招聘……为你带来最in的场景化体验。

AIUI、讯飞医疗、AI大学、智慧城市……科技展区将带来科大讯飞各事业群的最新成果,从大型电信级应用到小型嵌入式应用;从手机到车载;从家电到玩具,你将体验能够满足不同应用环境的各种惊喜。


6.行业大咖做客,10+场AI细分领域论坛
医疗、客服、营销、家居、机器人、城市、AIoT……本届1024开发者节围绕等10多场AI+场景举行深度分论坛。

知名企业的资深大咖将与大家分享AI时代的见解,在圆桌互动交流彼此观点。我们将会展示讯飞和合作伙伴之间共创的各项核心赛道的AI风采,以科技之心为开发者赋能,用AI之光点亮全行业!

7.丰富互动,亲身参与“追光之旅”
你既可以与AI大咖零距离沟通,围绕AI发展进行思维碰撞,也可以现场与他人分享你对AI产品的使用体验。在2018届科大讯飞全球1024开发者节,你不仅是一名AI巅峰领域的见证者,更是追逐AI科技之光的参与者!

如何开启我的“追光之旅”?2018届全球1024开发者节购票通道已正式开启

贵宾票、嘉宾票、学生票、音乐节票任你选择

点击购买门票即刻抢票

微信图片_20180930151332.jpg

想了解更多关于票务及优惠方面的信息,快添加AI小助手微信号:iFLYTEKAI

微信图片_20180930151351.jpg

 
我们希望全球1024开发者节可以构建人工智能生态链接,打造科技文化独家品牌,影响全球人工智能开发者、爱好者,用人工智能共创美好世界!

2018届科大讯飞全球1024开发者节将用最新最全的人工智能技术和产品促进跨行业链接、多领域碰撞、新技术开发,以科技之光、生态之念,立足当下、放眼未来!

凡是过往,皆为序曲。AI+带来的无限可能,都在此刻埋下伏笔。1024,许你未来之光!
9
回复

收集基于环信SDK开发的开源项目 开源项目

回复

xiaoyan2015 回复了问题 • 12 人关注 • 10685 次浏览 • 2018-08-18 10:42 • 来自相关话题

3
评论

【开源项目】全国首个开源直播小程序源码 环信公开课 小程序 直播

beyond 发表了文章 • 2125 次浏览 • 2018-07-20 17:30 • 来自相关话题

今天你看直播了吗?拥有10亿微信生态用户的小程序已经成为了继移动互联后的又一个现象级风口,随着微信小程序对外开放实时音视频录制及播放等更多连接能力,小程序与直播强强联合,在各行各业找到了非常多的玩法,小程序直播相比微信直播和APP直播更加简洁、流畅、低延时、多入口等众多优势迅速向商业直播领域及泛娱乐直播领域蔓延。从小游戏、内容付费、工具、大数据、社交电商创业者到传统品牌商们,都在努力搭上小程序直播这辆快车,以免错过微信生态里新的流量洼地。
 





作为一名环信生态圈资深开发者,本着对技术的热衷,对环信的眷恋和对党的忠诚,基于环信即时通讯云写了“直播购物小程序”,目前项目源码已全部免费开放,希望对有需求的企业和开发者提供一个思路和参考。
直播购物小程序源码github地址:https://github.com/YuTongNetworkTechnology/wechat_live/tree/master 
git打不开可直接点下面链接下载


小程序直播demo_2018-06-21.zip







直播购物小程序运行预览图 
 
小程序体验指南(仅需两步):
 
1、下载微信小程序开发工具,下载地址:https://developers.weixin.qq.c ... .html 
 




2、导入源码:将附件的源码解压直接导入 







环信小程序直播技术文档
一、 使用的技术
1、 环信IM直播室。
2、 微信小程序实时音视频播放组件live-player。
3、 推流软件(obs、易推流)等推流。
4、 视频流服务器(UCLOUD、七牛、腾讯)等视频流服务器。
二、 系统使用流程。
1、 视频推流软件将视频流推到流服务器。
2、 打开视频直播demo小程序注册环信账号。
3、 进入软件直播室进行测试。
三、 技术流程及使用的SDk
1、 注册环信账号
打开https://www.easemob.com/ 环信官网,点击右上角注册按钮,选择[注册即时通讯云]




填写对相关信息进行注册





注册成功后进行登录




注:新注册用户需进行账号的认证。
2、 直播应用创建
登录成功点击应用列表选择创建应用




输入应用名称等信息
 





创建成功后点击应用进入





需要注意的是应用的OrgName 和AppName这两个是以后都需要用到的两个参数变量




3、 直播创建
1)在创建直播之前需要对应用进行设置首先需要设置应用的直播流地址
第一步获取应用管理员的Tokencurl -X POST "https://a1.easemob.com/[应用OrgName]/[应用AppName]/token" -d '{"grant_type":"client_credentials","client_id":"[应用client_id]","client_secret":"[应用] client_secret"}'返回格式{
"access_token":"YWMtWY779DgJEeS2h9OR7fw4QgAAAUmO4Qukwd9cfJSpkWHiOa7MCSk0MrkVIco",
"expires_in":5184000,
"application":"c03b3e30-046a-11e4-8ed1-5701cdaaa0e4"












第二步设置直播流地址curl -X POST -H "Authorization: Bearer [管理员Token]" " https://a1.easemob.com/[应用OrgName]/[应用AppName]/liverooms/stream_url -d '{"pc_pull":"[pc拉流地址]","pc_push":"[pc推流地址]","mobile_pull":"[手机拉流地址]","mobile_push":"[手机推流地址]"}'"成功返回格式:{
"action": "post",
"application": "e1a09de0-0e03-11e7-ad8e-a1d913615409",
"uri": "http://127.0.0.1:8080/easemob- ... ot%3B,
"entities": [ ],
"data": {
"pc_pull": true,
"mobile_push": true,
"mobile_pull": true,
"pc_push": true
},
"timestamp": 1494084474885,
"duration": 1,
"organization": "easemob-demo",
"applicationName": "chatdemoui"
}












2)创建主播
点击IM用户





点击注册IM用户





填写用户信息





创建用户的过程同样也可以通过REST API形式进行curl -X POST -i " https://a1.easemob.com/[应用OrgName]/[应用AppName]/users" -d '{"username":"[用户名]","password":"[密码]"}'
注:应用必须为开放注册





将注册的用户添加为主播curl -X POST -H "Authorization: [管理员Token]" https://a1.easemob.com/[应用OrgName]/[应用AppName]/super_admin -d'{"superadmin":"[IM用户名]"}'返回结果示例:{
"action": "post",
"application": "4d7e4ba0-dc4a-11e3-90d5-e1ffbaacdaf5",
"uri": "http://127.0.0.1:8080/easemob- ... ot%3B,
"entities": [ ],
"data": {
"result": "success"
},
"timestamp": 1496236798886,
"duration": 0,
"organization": "easemob-demo",
"applicationName": "chatdemoui"
}












3)创建直播
点击直播





点击新建房间





填写房间信息




创建房间同时也可以使用REST API形式进行详情可以查看http://docs.easemob.com/im/live/server-integration环信官方文档。
4、 小程序demo集成使用
小程序直播购物demo集成官方WebIM SDK详情请查看https://github.com/easemob/webim-weixin-xcx
Demo具体配置如下
打开demo 下sdk配置文件





修改appkey为自己应用的appkey





打开pages/live/index.js修改房间默认拉流地址及直播间房间号





四、 扩展说明
Demo中房间为固定测试房间,实际使用中应获取环信直播的房间信息及房间列表。具体如下:
获取直播间列表:curl -X GET -H "Authorization: Bearer [用户Token]" https://a1.easemob.com/[应用OrgName]/[应用AppName]/liverooms?ongoing=true&limit=[获取数量]&cursor=[游标地址(不填写为充开始查询)]
响应:{
"action": "get",
"application": "4d7e4ba0-dc4a-11e3-90d5-e1ffbaacdaf5",
"params": {
"cursor": [
"ZGNiMjRmNGY1YjczYjlhYTNkYjk1MDY2YmEyNzFmODQ6aW06Y2hhdHJvb206ZWFzZW1vYi1kZW1vI2NoYXRkZW1vdWk6MzE"
],
"ongoing": [
"true"
],
"limit": [
"2"
]
},
"uri": "http://127.0.0.1:8080/easemob- ... ot%3B,
"entities": [ ],
"data": [
{
"id": "1924",
"chatroom_id": "17177265635330",
"title": "具体了",
"desc": "就咯",
"startTime": 1495779917352,
"endTime": 1495779917352,
"anchor": "wuls",
"gift_count": 0,
"praise_count": 0,
"current_user_count": 8,
"max_user_count": 9,
"status": "ongoing",
"cover_picture_url": "",
"pc_pull_url": "rtmp://vlive3.rtmp.cdn.ucloud.com.cn/ucloud/easemob-demo_chatdemoui_1924_1",
"pc_push_url": "rtmp://publish3.cdn.ucloud.com.cn/ucloud/easemob-demo_chatdemoui_1924_1",
"mobile_pull_url": "rtmp://vlive3.rtmp.cdn.ucloud.com.cn/ucloud/easemob-demo_chatdemoui_1924_1",
"mobile_push_url": "rtmp://publish3.cdn.ucloud.com.cn/ucloud/easemob-demo_chatdemoui_1924_1"
},
{
"id": "1922",
"chatroom_id": "17175003856897",
"title": "香山",
"desc": "随便",
"startTime": 1495777760957,
"endTime": 1495777760957,
"anchor": "sx001",
"gift_count": 0,
"praise_count": 8,
"current_user_count": 1,
"max_user_count": 3,
"status": "ongoing",
"cover_picture_url": "http://127.0.0.1:8080/easemob- ... ot%3B,
"pc_pull_url": "rtmp://vlive3.rtmp.cdn.ucloud.com.cn/ucloud/easemob-demo_chatdemoui_1922_1",
"pc_push_url": "rtmp://publish3.cdn.ucloud.com.cn/ucloud/easemob-demo_chatdemoui_1922_1",
"mobile_pull_url": "rtmp://vlive3.rtmp.cdn.ucloud.com.cn/ucloud/easemob-demo_chatdemoui_1922_1",
"mobile_push_url": "rtmp://publish3.cdn.ucloud.com.cn/ucloud/easemob-demo_chatdemoui_1922_1"
}
],
"timestamp": 1496303336669,
"duration": 0,
"organization": "easemob-demo",
"applicationName": "chatdemoui",
"cursor": "ZGNiMjRmNGY1YjczYjlhYTNkYjk1MDY2YmEyNzFmODQ6aW06Y2hhdHJvb206ZWFzZW1vYi1kZW1vI2NoYXRkZW1vdWk6NDk",
"count": 2
}












获取直播间详情:curl -X GET -H "Authorization: Bearer [用户Token]" " https://a1.easemob.com/[应用OrgName]/[应用AppName]/[房间id]/status"响应:{
"action": "get",
"application": "4d7e4ba0-dc4a-11e3-90d5-e1ffbaacdaf5",
"uri": "http://127.0.0.1:8080/easemob- ... ot%3B,
"entities": [ ],
"data": {
"liveRoomID": "1946",
"status": "ongoing"
},
"timestamp": 1496234759930,
"duration": 0,
"organization": "easemob-demo",
"applicationName": "chatdemoui",
"count": 0
}














 
使用环信直播购物小程序遇到任何问题欢迎跟帖讨论。 查看全部
今天你看直播了吗?
拥有10亿微信生态用户的小程序已经成为了继移动互联后的又一个现象级风口,随着微信小程序对外开放实时音视频录制及播放等更多连接能力,小程序与直播强强联合,在各行各业找到了非常多的玩法,小程序直播相比微信直播和APP直播更加简洁、流畅、低延时、多入口等众多优势迅速向商业直播领域及泛娱乐直播领域蔓延。从小游戏、内容付费、工具、大数据、社交电商创业者到传统品牌商们,都在努力搭上小程序直播这辆快车,以免错过微信生态里新的流量洼地。
 
微信图片_20180725162426.jpg


作为一名环信生态圈资深开发者,本着对技术的热衷,对环信的眷恋和对党的忠诚,基于环信即时通讯云写了“直播购物小程序”,目前项目源码已全部免费开放,希望对有需求的企业和开发者提供一个思路和参考。
直播购物小程序源码github地址:https://github.com/YuTongNetworkTechnology/wechat_live/tree/master 
git打不开可直接点下面链接下载



预览图.jpg

直播购物小程序运行预览图 
 
小程序体验指南(仅需两步):
 
1、下载微信小程序开发工具,下载地址:https://developers.weixin.qq.c ... .html 
 
Catch9A07(07-20-17-38-30).jpg

2、导入源码:将附件的源码解压直接导入 


Catch1C69(07-20-17-38-30).jpg


环信小程序直播技术文档
一、 使用的技术
1、 环信IM直播室。
2、 微信小程序实时音视频播放组件live-player。
3、 推流软件(obs、易推流)等推流。
4、 视频流服务器(UCLOUD、七牛、腾讯)等视频流服务器。
二、 系统使用流程。
1、 视频推流软件将视频流推到流服务器。
2、 打开视频直播demo小程序注册环信账号。
3、 进入软件直播室进行测试。
三、 技术流程及使用的SDk
1、 注册环信账号
打开https://www.easemob.com/ 环信官网,点击右上角注册按钮,选择[注册即时通讯云]
1.png

填写对相关信息进行注册

2.png

注册成功后进行登录
3.png

注:新注册用户需进行账号的认证。
2、 直播应用创建
登录成功点击应用列表选择创建应用
4.png

输入应用名称等信息
 

5.png

创建成功后点击应用进入

6.png

需要注意的是应用的OrgName 和AppName这两个是以后都需要用到的两个参数变量
7.png

3、 直播创建
1)在创建直播之前需要对应用进行设置首先需要设置应用的直播流地址
第一步获取应用管理员的Token
curl -X POST "https://a1.easemob.com/[应用OrgName]/[应用AppName]/token" -d '{"grant_type":"client_credentials","client_id":"[应用client_id]","client_secret":"[应用] client_secret"}'
返回格式
{
"access_token":"YWMtWY779DgJEeS2h9OR7fw4QgAAAUmO4Qukwd9cfJSpkWHiOa7MCSk0MrkVIco",
"expires_in":5184000,
"application":"c03b3e30-046a-11e4-8ed1-5701cdaaa0e4"












第二步设置直播流地址
curl -X POST -H "Authorization: Bearer [管理员Token]"  " https://a1.easemob.com/[应用OrgName]/[应用AppName]/liverooms/stream_url -d '{"pc_pull":"[pc拉流地址]","pc_push":"[pc推流地址]","mobile_pull":"[手机拉流地址]","mobile_push":"[手机推流地址]"}'"
成功返回格式:
{
"action": "post",
"application": "e1a09de0-0e03-11e7-ad8e-a1d913615409",
"uri": "http://127.0.0.1:8080/easemob- ... ot%3B,
"entities": [ ],
"data": {
"pc_pull": true,
"mobile_push": true,
"mobile_pull": true,
"pc_push": true
},
"timestamp": 1494084474885,
"duration": 1,
"organization": "easemob-demo",
"applicationName": "chatdemoui"
}












2)创建主播
点击IM用户

8.png

点击注册IM用户

9.png

填写用户信息

10.png

创建用户的过程同样也可以通过REST API形式进行
curl -X POST -i " https://a1.easemob.com/[应用OrgName]/[应用AppName]/users" -d '{"username":"[用户名]","password":"[密码]"}'

注:应用必须为开放注册

11.png

将注册的用户添加为主播
curl -X POST -H "Authorization: [管理员Token]"  https://a1.easemob.com/[应用OrgName]/[应用AppName]/super_admin -d'{"superadmin":"[IM用户名]"}'
返回结果示例:
{
"action": "post",
"application": "4d7e4ba0-dc4a-11e3-90d5-e1ffbaacdaf5",
"uri": "http://127.0.0.1:8080/easemob- ... ot%3B,
"entities": [ ],
"data": {
"result": "success"
},
"timestamp": 1496236798886,
"duration": 0,
"organization": "easemob-demo",
"applicationName": "chatdemoui"
}












3)创建直播
点击直播

12.png

点击新建房间

13.png

填写房间信息
14.png

创建房间同时也可以使用REST API形式进行详情可以查看http://docs.easemob.com/im/live/server-integration环信官方文档。
4、 小程序demo集成使用
小程序直播购物demo集成官方WebIM SDK详情请查看https://github.com/easemob/webim-weixin-xcx
Demo具体配置如下
打开demo 下sdk配置文件

15.png

修改appkey为自己应用的appkey

16.png

打开pages/live/index.js修改房间默认拉流地址及直播间房间号

17.png

四、 扩展说明
Demo中房间为固定测试房间,实际使用中应获取环信直播的房间信息及房间列表。具体如下:
获取直播间列表:
curl -X GET -H "Authorization: Bearer  [用户Token]"  https://a1.easemob.com/[应用OrgName]/[应用AppName]/liverooms?ongoing=true&limit=[获取数量]&cursor=[游标地址(不填写为充开始查询)]

响应:
{
"action": "get",
"application": "4d7e4ba0-dc4a-11e3-90d5-e1ffbaacdaf5",
"params": {
"cursor": [
"ZGNiMjRmNGY1YjczYjlhYTNkYjk1MDY2YmEyNzFmODQ6aW06Y2hhdHJvb206ZWFzZW1vYi1kZW1vI2NoYXRkZW1vdWk6MzE"
],
"ongoing": [
"true"
],
"limit": [
"2"
]
},
"uri": "http://127.0.0.1:8080/easemob- ... ot%3B,
"entities": [ ],
"data": [
{
"id": "1924",
"chatroom_id": "17177265635330",
"title": "具体了",
"desc": "就咯",
"startTime": 1495779917352,
"endTime": 1495779917352,
"anchor": "wuls",
"gift_count": 0,
"praise_count": 0,
"current_user_count": 8,
"max_user_count": 9,
"status": "ongoing",
"cover_picture_url": "",
"pc_pull_url": "rtmp://vlive3.rtmp.cdn.ucloud.com.cn/ucloud/easemob-demo_chatdemoui_1924_1",
"pc_push_url": "rtmp://publish3.cdn.ucloud.com.cn/ucloud/easemob-demo_chatdemoui_1924_1",
"mobile_pull_url": "rtmp://vlive3.rtmp.cdn.ucloud.com.cn/ucloud/easemob-demo_chatdemoui_1924_1",
"mobile_push_url": "rtmp://publish3.cdn.ucloud.com.cn/ucloud/easemob-demo_chatdemoui_1924_1"
},
{
"id": "1922",
"chatroom_id": "17175003856897",
"title": "香山",
"desc": "随便",
"startTime": 1495777760957,
"endTime": 1495777760957,
"anchor": "sx001",
"gift_count": 0,
"praise_count": 8,
"current_user_count": 1,
"max_user_count": 3,
"status": "ongoing",
"cover_picture_url": "http://127.0.0.1:8080/easemob- ... ot%3B,
"pc_pull_url": "rtmp://vlive3.rtmp.cdn.ucloud.com.cn/ucloud/easemob-demo_chatdemoui_1922_1",
"pc_push_url": "rtmp://publish3.cdn.ucloud.com.cn/ucloud/easemob-demo_chatdemoui_1922_1",
"mobile_pull_url": "rtmp://vlive3.rtmp.cdn.ucloud.com.cn/ucloud/easemob-demo_chatdemoui_1922_1",
"mobile_push_url": "rtmp://publish3.cdn.ucloud.com.cn/ucloud/easemob-demo_chatdemoui_1922_1"
}
],
"timestamp": 1496303336669,
"duration": 0,
"organization": "easemob-demo",
"applicationName": "chatdemoui",
"cursor": "ZGNiMjRmNGY1YjczYjlhYTNkYjk1MDY2YmEyNzFmODQ6aW06Y2hhdHJvb206ZWFzZW1vYi1kZW1vI2NoYXRkZW1vdWk6NDk",
"count": 2
}












获取直播间详情:
curl -X GET -H "Authorization: Bearer [用户Token]" " https://a1.easemob.com/[应用OrgName]/[应用AppName]/[房间id]/status"
响应:
{
"action": "get",
"application": "4d7e4ba0-dc4a-11e3-90d5-e1ffbaacdaf5",
"uri": "http://127.0.0.1:8080/easemob- ... ot%3B,
"entities": [ ],
"data": {
"liveRoomID": "1946",
"status": "ongoing"
},
"timestamp": 1496234759930,
"duration": 0,
"organization": "easemob-demo",
"applicationName": "chatdemoui",
"count": 0
}














 
使用环信直播购物小程序遇到任何问题欢迎跟帖讨论。
18
评论

【新手快速入门】集成环信常见问题+解决方案汇总 常见问题

dujiepeng 发表了文章 • 17305 次浏览 • 2017-05-22 15:51 • 来自相关话题

   这里整理了集成环信的常见问题和一些功能的实现思路,希望能帮助到大家。感谢热心的开发者贡献,大家在观看过程中有不明白的地方欢迎直接跟帖咨询。
 
ios篇
APNs证书创建和上传到环信后台头像昵称的简述和处理方案音视频离线推送Demo实现环信服务器聊天记录保存多久?离线收不到好友请求IOS中环信聊天窗口如何实现文件发送和预览的功能ios集成常见问题环信推送的一些常见问题实现名片|红包|话题聊天室等自定义cell
 
Android篇
Android sdk 的两种导入方式环信3.0SDK集成小米推送教程EaseUI库中V4、v7包冲突解决方案Android EaseUI里的百度地图替换为高德地图android扩展消息(名片集成)关于会话列表的置顶聊天java.lang.UnsatisfiedLinkError: 的问题android 端 app 后台被杀死收不到消息的解决方案
昵称头像篇
android中如何显示开发者服务器上的昵称和头像 Android中显示头像(接上一篇文章看)环信(Android)设置头像和昵称的方法(最简单暴力的基于环信demo的集成)IOS中如何显示开发者服务器上的昵称和头像【环信公开课第12期视频回放】-所有关于环信IM昵称头像的问题听这课就够了
 
直播篇
一言不合你就搞个直播APP
 
客服集成
IM-SDK和客服SDK并存开发指南—Android篇IM-SDK和客服SDK并存开发指南—iOS篇
 
开源项目
Android简版demoios简版demo凡信2.0:超仿微信的开源项目 凡信3.0:携直播和红包而来高仿微信:Github 3,515 Star方圆十里:环信编程大赛冠军项目泛聊:定一个小目标写一个QQSlack聊天机器人:一天时间做一个聊天机器人TV视频通话:在电视上视频通话视频通话:Android手机视频通话酷信:ios高仿微信公众号助手:与订阅用户聊天沟通
 
持续更新ing...小伙伴们还有什么想知道欢迎跟帖提出。
  查看全部
   这里整理了集成环信的常见问题和一些功能的实现思路,希望能帮助到大家。感谢热心的开发者贡献,大家在观看过程中有不明白的地方欢迎直接跟帖咨询。
 
ios篇

 
Android篇

昵称头像篇

 
直播篇
  1. 一言不合你就搞个直播APP

 
客服集成
  1. IM-SDK和客服SDK并存开发指南—Android篇
  2. IM-SDK和客服SDK并存开发指南—iOS篇

 
开源项目

 
持续更新ing...小伙伴们还有什么想知道欢迎跟帖提出。
 
0
回复

android 做环信视频通话。是否可以控制通话的声音大小,甚至静音啊 环信_Android

回复

从容微笑 发起了问题 • 1 人关注 • 140 次浏览 • 2018-10-16 16:59 • 来自相关话题

0
回复

EMClient.getInstance().chatManager().importMessages(messages)没有作用 环信_Android

回复

来者勿拒,去者不追 发起了问题 • 1 人关注 • 148 次浏览 • 2018-10-12 13:43 • 来自相关话题

1
回复

怎么让聊天界只能输入语音 环信_Android

回复

lijiazhen 回复了问题 • 2 人关注 • 356 次浏览 • 2018-10-11 15:31 • 来自相关话题

1
最佳

安卓的,使用环信的群组,请问怎么设置这个群的头像? 环信_Android

回复

lijiazhen 回复了问题 • 2 人关注 • 223 次浏览 • 2018-10-11 15:29 • 来自相关话题

0
回复

经常收不到视频请求 环信_Android

回复

睡不醒的米老鼠 发起了问题 • 1 人关注 • 145 次浏览 • 2018-10-10 17:03 • 来自相关话题

1
最佳

通知栏点击跳转问题 环信_Android

回复

lijiazhen 回复了问题 • 2 人关注 • 328 次浏览 • 2018-10-09 17:47 • 来自相关话题

0
回复

有支持flutter的二次封装吗? 环信_iOS 环信_Android Flutter

回复

[苏州]入云龙-找Web驻场 发起了问题 • 1 人关注 • 142 次浏览 • 2018-10-09 08:41 • 来自相关话题

2
回复

Android 华为移动推送服务无法接收离线消息 环信_Android

回复

尐參米 回复了问题 • 3 人关注 • 346 次浏览 • 2018-10-08 15:03 • 来自相关话题

0
回复

环信会话列表接收到新消息以后conversationListView.refresh()报空指针 环信_Android

回复

qquser 发起了问题 • 1 人关注 • 168 次浏览 • 2018-10-05 16:12 • 来自相关话题

1
回复

聊天页报错 环信_Android 报错

回复

睡不醒的米老鼠 回复了问题 • 1 人关注 • 246 次浏览 • 2018-09-29 15:11 • 来自相关话题

0
回复

easeui视频通话昵称 环信_Android

回复

睡不醒的米老鼠 发起了问题 • 1 人关注 • 224 次浏览 • 2018-09-28 19:23 • 来自相关话题

0
回复

集成环信报错 环信_Android

回复

睡不醒的米老鼠 发起了问题 • 1 人关注 • 192 次浏览 • 2018-09-28 19:18 • 来自相关话题

1
回复

安卓需要配置证书吗 环信_Android

回复

beyond 回复了问题 • 2 人关注 • 294 次浏览 • 2018-09-27 16:58 • 来自相关话题

0
回复

为什么集成没有音视频的hyphenatechat_3.5.1.jar 后登陆后一直提示找不到EMConferenceManager 环信_Android

回复

NaoiAyato 发起了问题 • 1 人关注 • 204 次浏览 • 2018-09-26 15:37 • 来自相关话题

1
回复

调用登录方法异常,提示 Failed resolution of: Lcom/hyphenate/chat/EMConferenceManager; 环信 android 环信_Android 登录 异常

回复

NaoiAyato 回复了问题 • 1 人关注 • 343 次浏览 • 2018-09-26 15:29 • 来自相关话题

0
回复

vivo手机播放视频错误 环信_Android 无法播放视频 vivo

回复

发起了问题 • 1 人关注 • 258 次浏览 • 2018-09-26 10:47 • 来自相关话题

0
回复

CreateLiveRoomActivity.class 这个类131行报错 环信_Android

回复

为你我受冷风 发起了问题 • 1 人关注 • 329 次浏览 • 2018-09-21 14:55 • 来自相关话题

2
回复

登录成功后杀死应用重新进入就会提示账号在其他手机上登录 环信 android 环信_Android 登录 退出登录

回复

beyond 回复了问题 • 2 人关注 • 265 次浏览 • 2018-09-19 18:13 • 来自相关话题

1
回复

安卓能接收消息,发送不了消息,而且setMessageStatusCallback里也没有响应 有专职工程师值守 环信_Android

回复

轻雪飞天 回复了问题 • 1 人关注 • 311 次浏览 • 2018-09-19 11:08 • 来自相关话题

0
回复

登录成功后直接被挤掉是怎么回事? 环信 android 环信_Android 登录

回复

我与你 发起了问题 • 1 人关注 • 281 次浏览 • 2018-09-19 10:33 • 来自相关话题

1
回复

环信3 在高版本安卓上申请数据库权限失败的问题 环信_Android 环信 sqlite权限

回复

勤劳的董永 回复了问题 • 1 人关注 • 341 次浏览 • 2018-09-18 20:56 • 来自相关话题

0
回复

实时通话功能 如何自定义音频源 环信_Android

回复

赵杰 发起了问题 • 1 人关注 • 213 次浏览 • 2018-09-18 16:04 • 来自相关话题

0
回复

登录成功后杀死应用重新进入就会提示账号在其他手机上登录 环信 android 环信_Android 登录

回复

我与你 发起了问题 • 1 人关注 • 180 次浏览 • 2018-09-18 14:18 • 来自相关话题

0
评论

2018科大讯飞全球1024开发者节,来了! 1024程序员节 1024大会 科大讯飞

beyond 发表了文章 • 536 次浏览 • 2018-09-30 15:14 • 来自相关话题

10月24日-10月25日,安徽·合肥,2018届科大讯飞全球1024开发者节即将重磅开启,邀请MIT科技创新专家等大咖,还有10多场AI+分论坛、1000+AI产品等你体验。点击阅读原文,即刻进入官网抢票!





如果要用一样事物来形容科技,非光莫属。科技革新如光一般照亮我们的生活,让我们看到未来。

讯飞开放平台自2010年成立以来,目前已拥有83万开发者。我们一起在“追光之旅”中不断探索万物互联的缤纷世界,攀登AI之巅!

秉承“开放·合作·生态·共享”理念。2018届科大讯飞全球1024开发者节,我们为开发者们带来更多精彩。 
今年1024,你将看到
 
1.AI领军人物齐聚前沿论坛
如果你想与AI商业化专家吴霁虹、斯坦福大学教授蒋里、科大讯飞董事长刘庆峰、AI大学校长胡郁、讯飞华南公司总裁杜兰、智慧医疗专家陶晓东、MIT35岁以下科技创新青年魏思等AI领袖面对面,请一定不要错过本届1024开发者节。
 
2.1024计划全新发布
2017届全球1024开发者节,“1024计划”重磅推出。从“AI教引”、“AI生态”、“AI公益”三个方面,辅导、赋能开发者,关注公益事业。

回顾:重磅 | 科大讯飞发布《1024计划》,AI点亮全球

今年开发者节,全新“1024计划”将现场公布,新的计划将:

更大规模:覆盖更宽广的领域,让更多用户感受到AI所带来的便捷!

更大力度:用更先进的AI科技,更全面的支持策略,赋能未来!
 
3.最强AI开发者现场终极PK
科大讯飞2018年面向全球正式发起首届“顶天立地”iFLYTEK AI开发者大赛。历时4个月,大赛吸引了1万余名世界各地的优秀开发者踊跃参加,共计收到全球3千多支团队提交参赛作品。

10月24日,应用开发AI挑战赛总决赛9支团队,方言种类识别AI挑战赛总决赛8支团队将在开发者节现场展开AI开发技能的巅峰对决和终极PK。
 
4.公益音乐节,以AI之名传递温暖
2018届科大讯飞全球1024开发者节,将延续“三声有幸”的公益主题,盛邀公益音乐人亲临,为AI献声!以歌声传达鼓舞人心的力量,用音乐唤醒人们对公益的认知。另外,现场还将有特别呈现的“公益天使”带来的的额外惊喜!

注:AI公益音乐节所有门票收入将全部用于讯飞“三声有幸”公益计划。
 
5.2大展区,50+展位,1000+黑科技
在AI体验区,我们准备了多个神秘环节,带给你突破想象力边界的AI旅程。我们用1000+AI黑科技展示对生活的思考。
 
在生态展区,科大讯飞集结自己的生态合作伙伴,在50多个展位上展示最前沿的AI落地产品和服务。覆盖企业服务、图像识别、健康医疗、公益、大数据、智能家居、机器人、智能营销、智能招聘……为你带来最in的场景化体验。

AIUI、讯飞医疗、AI大学、智慧城市……科技展区将带来科大讯飞各事业群的最新成果,从大型电信级应用到小型嵌入式应用;从手机到车载;从家电到玩具,你将体验能够满足不同应用环境的各种惊喜。


6.行业大咖做客,10+场AI细分领域论坛
医疗、客服、营销、家居、机器人、城市、AIoT……本届1024开发者节围绕等10多场AI+场景举行深度分论坛。

知名企业的资深大咖将与大家分享AI时代的见解,在圆桌互动交流彼此观点。我们将会展示讯飞和合作伙伴之间共创的各项核心赛道的AI风采,以科技之心为开发者赋能,用AI之光点亮全行业!

7.丰富互动,亲身参与“追光之旅”
你既可以与AI大咖零距离沟通,围绕AI发展进行思维碰撞,也可以现场与他人分享你对AI产品的使用体验。在2018届科大讯飞全球1024开发者节,你不仅是一名AI巅峰领域的见证者,更是追逐AI科技之光的参与者!

如何开启我的“追光之旅”?2018届全球1024开发者节购票通道已正式开启

贵宾票、嘉宾票、学生票、音乐节票任你选择

点击购买门票即刻抢票





想了解更多关于票务及优惠方面的信息,快添加AI小助手微信号:iFLYTEKAI





 
我们希望全球1024开发者节可以构建人工智能生态链接,打造科技文化独家品牌,影响全球人工智能开发者、爱好者,用人工智能共创美好世界!

2018届科大讯飞全球1024开发者节将用最新最全的人工智能技术和产品促进跨行业链接、多领域碰撞、新技术开发,以科技之光、生态之念,立足当下、放眼未来!

凡是过往,皆为序曲。AI+带来的无限可能,都在此刻埋下伏笔。1024,许你未来之光! 查看全部
10月24日-10月25日,安徽·合肥,2018届科大讯飞全球1024开发者节即将重磅开启,邀请MIT科技创新专家等大咖,还有10多场AI+分论坛、1000+AI产品等你体验。点击阅读原文,即刻进入官网抢票!

微信图片_20180930150850.jpg

如果要用一样事物来形容科技,非光莫属。科技革新如光一般照亮我们的生活,让我们看到未来。

讯飞开放平台自2010年成立以来,目前已拥有83万开发者。我们一起在“追光之旅”中不断探索万物互联的缤纷世界,攀登AI之巅!

秉承“开放·合作·生态·共享”理念。2018届科大讯飞全球1024开发者节,我们为开发者们带来更多精彩。 
今年1024,你将看到
 
1.AI领军人物齐聚前沿论坛
如果你想与AI商业化专家吴霁虹、斯坦福大学教授蒋里、科大讯飞董事长刘庆峰、AI大学校长胡郁、讯飞华南公司总裁杜兰、智慧医疗专家陶晓东、MIT35岁以下科技创新青年魏思等AI领袖面对面,请一定不要错过本届1024开发者节。
 
2.1024计划全新发布
2017届全球1024开发者节,“1024计划”重磅推出。从“AI教引”、“AI生态”、“AI公益”三个方面,辅导、赋能开发者,关注公益事业。

回顾:重磅 | 科大讯飞发布《1024计划》,AI点亮全球

今年开发者节,全新“1024计划”将现场公布,新的计划将:

更大规模:覆盖更宽广的领域,让更多用户感受到AI所带来的便捷!

更大力度:用更先进的AI科技,更全面的支持策略,赋能未来!
 
3.最强AI开发者现场终极PK
科大讯飞2018年面向全球正式发起首届“顶天立地”iFLYTEK AI开发者大赛。历时4个月,大赛吸引了1万余名世界各地的优秀开发者踊跃参加,共计收到全球3千多支团队提交参赛作品。

10月24日,应用开发AI挑战赛总决赛9支团队,方言种类识别AI挑战赛总决赛8支团队将在开发者节现场展开AI开发技能的巅峰对决和终极PK。
 
4.公益音乐节,以AI之名传递温暖
2018届科大讯飞全球1024开发者节,将延续“三声有幸”的公益主题,盛邀公益音乐人亲临,为AI献声!以歌声传达鼓舞人心的力量,用音乐唤醒人们对公益的认知。另外,现场还将有特别呈现的“公益天使”带来的的额外惊喜!

注:AI公益音乐节所有门票收入将全部用于讯飞“三声有幸”公益计划。
 
5.2大展区,50+展位,1000+黑科技
在AI体验区,我们准备了多个神秘环节,带给你突破想象力边界的AI旅程。我们用1000+AI黑科技展示对生活的思考。
 
在生态展区,科大讯飞集结自己的生态合作伙伴,在50多个展位上展示最前沿的AI落地产品和服务。覆盖企业服务、图像识别、健康医疗、公益、大数据、智能家居、机器人、智能营销、智能招聘……为你带来最in的场景化体验。

AIUI、讯飞医疗、AI大学、智慧城市……科技展区将带来科大讯飞各事业群的最新成果,从大型电信级应用到小型嵌入式应用;从手机到车载;从家电到玩具,你将体验能够满足不同应用环境的各种惊喜。


6.行业大咖做客,10+场AI细分领域论坛
医疗、客服、营销、家居、机器人、城市、AIoT……本届1024开发者节围绕等10多场AI+场景举行深度分论坛。

知名企业的资深大咖将与大家分享AI时代的见解,在圆桌互动交流彼此观点。我们将会展示讯飞和合作伙伴之间共创的各项核心赛道的AI风采,以科技之心为开发者赋能,用AI之光点亮全行业!

7.丰富互动,亲身参与“追光之旅”
你既可以与AI大咖零距离沟通,围绕AI发展进行思维碰撞,也可以现场与他人分享你对AI产品的使用体验。在2018届科大讯飞全球1024开发者节,你不仅是一名AI巅峰领域的见证者,更是追逐AI科技之光的参与者!

如何开启我的“追光之旅”?2018届全球1024开发者节购票通道已正式开启

贵宾票、嘉宾票、学生票、音乐节票任你选择

点击购买门票即刻抢票

微信图片_20180930151332.jpg

想了解更多关于票务及优惠方面的信息,快添加AI小助手微信号:iFLYTEKAI

微信图片_20180930151351.jpg

 
我们希望全球1024开发者节可以构建人工智能生态链接,打造科技文化独家品牌,影响全球人工智能开发者、爱好者,用人工智能共创美好世界!

2018届科大讯飞全球1024开发者节将用最新最全的人工智能技术和产品促进跨行业链接、多领域碰撞、新技术开发,以科技之光、生态之念,立足当下、放眼未来!

凡是过往,皆为序曲。AI+带来的无限可能,都在此刻埋下伏笔。1024,许你未来之光!
9
回复

收集基于环信SDK开发的开源项目 开源项目

回复

xiaoyan2015 回复了问题 • 12 人关注 • 10685 次浏览 • 2018-08-18 10:42 • 来自相关话题

3
评论

【开源项目】全国首个开源直播小程序源码 环信公开课 小程序 直播

beyond 发表了文章 • 2125 次浏览 • 2018-07-20 17:30 • 来自相关话题

今天你看直播了吗?拥有10亿微信生态用户的小程序已经成为了继移动互联后的又一个现象级风口,随着微信小程序对外开放实时音视频录制及播放等更多连接能力,小程序与直播强强联合,在各行各业找到了非常多的玩法,小程序直播相比微信直播和APP直播更加简洁、流畅、低延时、多入口等众多优势迅速向商业直播领域及泛娱乐直播领域蔓延。从小游戏、内容付费、工具、大数据、社交电商创业者到传统品牌商们,都在努力搭上小程序直播这辆快车,以免错过微信生态里新的流量洼地。
 





作为一名环信生态圈资深开发者,本着对技术的热衷,对环信的眷恋和对党的忠诚,基于环信即时通讯云写了“直播购物小程序”,目前项目源码已全部免费开放,希望对有需求的企业和开发者提供一个思路和参考。
直播购物小程序源码github地址:https://github.com/YuTongNetworkTechnology/wechat_live/tree/master 
git打不开可直接点下面链接下载


小程序直播demo_2018-06-21.zip







直播购物小程序运行预览图 
 
小程序体验指南(仅需两步):
 
1、下载微信小程序开发工具,下载地址:https://developers.weixin.qq.c ... .html 
 




2、导入源码:将附件的源码解压直接导入 







环信小程序直播技术文档
一、 使用的技术
1、 环信IM直播室。
2、 微信小程序实时音视频播放组件live-player。
3、 推流软件(obs、易推流)等推流。
4、 视频流服务器(UCLOUD、七牛、腾讯)等视频流服务器。
二、 系统使用流程。
1、 视频推流软件将视频流推到流服务器。
2、 打开视频直播demo小程序注册环信账号。
3、 进入软件直播室进行测试。
三、 技术流程及使用的SDk
1、 注册环信账号
打开https://www.easemob.com/ 环信官网,点击右上角注册按钮,选择[注册即时通讯云]




填写对相关信息进行注册





注册成功后进行登录




注:新注册用户需进行账号的认证。
2、 直播应用创建
登录成功点击应用列表选择创建应用




输入应用名称等信息
 





创建成功后点击应用进入





需要注意的是应用的OrgName 和AppName这两个是以后都需要用到的两个参数变量




3、 直播创建
1)在创建直播之前需要对应用进行设置首先需要设置应用的直播流地址
第一步获取应用管理员的Tokencurl -X POST "https://a1.easemob.com/[应用OrgName]/[应用AppName]/token" -d '{"grant_type":"client_credentials","client_id":"[应用client_id]","client_secret":"[应用] client_secret"}'返回格式{
"access_token":"YWMtWY779DgJEeS2h9OR7fw4QgAAAUmO4Qukwd9cfJSpkWHiOa7MCSk0MrkVIco",
"expires_in":5184000,
"application":"c03b3e30-046a-11e4-8ed1-5701cdaaa0e4"












第二步设置直播流地址curl -X POST -H "Authorization: Bearer [管理员Token]" " https://a1.easemob.com/[应用OrgName]/[应用AppName]/liverooms/stream_url -d '{"pc_pull":"[pc拉流地址]","pc_push":"[pc推流地址]","mobile_pull":"[手机拉流地址]","mobile_push":"[手机推流地址]"}'"成功返回格式:{
"action": "post",
"application": "e1a09de0-0e03-11e7-ad8e-a1d913615409",
"uri": "http://127.0.0.1:8080/easemob- ... ot%3B,
"entities": [ ],
"data": {
"pc_pull": true,
"mobile_push": true,
"mobile_pull": true,
"pc_push": true
},
"timestamp": 1494084474885,
"duration": 1,
"organization": "easemob-demo",
"applicationName": "chatdemoui"
}












2)创建主播
点击IM用户





点击注册IM用户





填写用户信息





创建用户的过程同样也可以通过REST API形式进行curl -X POST -i " https://a1.easemob.com/[应用OrgName]/[应用AppName]/users" -d '{"username":"[用户名]","password":"[密码]"}'
注:应用必须为开放注册





将注册的用户添加为主播curl -X POST -H "Authorization: [管理员Token]" https://a1.easemob.com/[应用OrgName]/[应用AppName]/super_admin -d'{"superadmin":"[IM用户名]"}'返回结果示例:{
"action": "post",
"application": "4d7e4ba0-dc4a-11e3-90d5-e1ffbaacdaf5",
"uri": "http://127.0.0.1:8080/easemob- ... ot%3B,
"entities": [ ],
"data": {
"result": "success"
},
"timestamp": 1496236798886,
"duration": 0,
"organization": "easemob-demo",
"applicationName": "chatdemoui"
}












3)创建直播
点击直播





点击新建房间





填写房间信息




创建房间同时也可以使用REST API形式进行详情可以查看http://docs.easemob.com/im/live/server-integration环信官方文档。
4、 小程序demo集成使用
小程序直播购物demo集成官方WebIM SDK详情请查看https://github.com/easemob/webim-weixin-xcx
Demo具体配置如下
打开demo 下sdk配置文件





修改appkey为自己应用的appkey





打开pages/live/index.js修改房间默认拉流地址及直播间房间号





四、 扩展说明
Demo中房间为固定测试房间,实际使用中应获取环信直播的房间信息及房间列表。具体如下:
获取直播间列表:curl -X GET -H "Authorization: Bearer [用户Token]" https://a1.easemob.com/[应用OrgName]/[应用AppName]/liverooms?ongoing=true&limit=[获取数量]&cursor=[游标地址(不填写为充开始查询)]
响应:{
"action": "get",
"application": "4d7e4ba0-dc4a-11e3-90d5-e1ffbaacdaf5",
"params": {
"cursor": [
"ZGNiMjRmNGY1YjczYjlhYTNkYjk1MDY2YmEyNzFmODQ6aW06Y2hhdHJvb206ZWFzZW1vYi1kZW1vI2NoYXRkZW1vdWk6MzE"
],
"ongoing": [
"true"
],
"limit": [
"2"
]
},
"uri": "http://127.0.0.1:8080/easemob- ... ot%3B,
"entities": [ ],
"data": [
{
"id": "1924",
"chatroom_id": "17177265635330",
"title": "具体了",
"desc": "就咯",
"startTime": 1495779917352,
"endTime": 1495779917352,
"anchor": "wuls",
"gift_count": 0,
"praise_count": 0,
"current_user_count": 8,
"max_user_count": 9,
"status": "ongoing",
"cover_picture_url": "",
"pc_pull_url": "rtmp://vlive3.rtmp.cdn.ucloud.com.cn/ucloud/easemob-demo_chatdemoui_1924_1",
"pc_push_url": "rtmp://publish3.cdn.ucloud.com.cn/ucloud/easemob-demo_chatdemoui_1924_1",
"mobile_pull_url": "rtmp://vlive3.rtmp.cdn.ucloud.com.cn/ucloud/easemob-demo_chatdemoui_1924_1",
"mobile_push_url": "rtmp://publish3.cdn.ucloud.com.cn/ucloud/easemob-demo_chatdemoui_1924_1"
},
{
"id": "1922",
"chatroom_id": "17175003856897",
"title": "香山",
"desc": "随便",
"startTime": 1495777760957,
"endTime": 1495777760957,
"anchor": "sx001",
"gift_count": 0,
"praise_count": 8,
"current_user_count": 1,
"max_user_count": 3,
"status": "ongoing",
"cover_picture_url": "http://127.0.0.1:8080/easemob- ... ot%3B,
"pc_pull_url": "rtmp://vlive3.rtmp.cdn.ucloud.com.cn/ucloud/easemob-demo_chatdemoui_1922_1",
"pc_push_url": "rtmp://publish3.cdn.ucloud.com.cn/ucloud/easemob-demo_chatdemoui_1922_1",
"mobile_pull_url": "rtmp://vlive3.rtmp.cdn.ucloud.com.cn/ucloud/easemob-demo_chatdemoui_1922_1",
"mobile_push_url": "rtmp://publish3.cdn.ucloud.com.cn/ucloud/easemob-demo_chatdemoui_1922_1"
}
],
"timestamp": 1496303336669,
"duration": 0,
"organization": "easemob-demo",
"applicationName": "chatdemoui",
"cursor": "ZGNiMjRmNGY1YjczYjlhYTNkYjk1MDY2YmEyNzFmODQ6aW06Y2hhdHJvb206ZWFzZW1vYi1kZW1vI2NoYXRkZW1vdWk6NDk",
"count": 2
}












获取直播间详情:curl -X GET -H "Authorization: Bearer [用户Token]" " https://a1.easemob.com/[应用OrgName]/[应用AppName]/[房间id]/status"响应:{
"action": "get",
"application": "4d7e4ba0-dc4a-11e3-90d5-e1ffbaacdaf5",
"uri": "http://127.0.0.1:8080/easemob- ... ot%3B,
"entities": [ ],
"data": {
"liveRoomID": "1946",
"status": "ongoing"
},
"timestamp": 1496234759930,
"duration": 0,
"organization": "easemob-demo",
"applicationName": "chatdemoui",
"count": 0
}














 
使用环信直播购物小程序遇到任何问题欢迎跟帖讨论。 查看全部
今天你看直播了吗?
拥有10亿微信生态用户的小程序已经成为了继移动互联后的又一个现象级风口,随着微信小程序对外开放实时音视频录制及播放等更多连接能力,小程序与直播强强联合,在各行各业找到了非常多的玩法,小程序直播相比微信直播和APP直播更加简洁、流畅、低延时、多入口等众多优势迅速向商业直播领域及泛娱乐直播领域蔓延。从小游戏、内容付费、工具、大数据、社交电商创业者到传统品牌商们,都在努力搭上小程序直播这辆快车,以免错过微信生态里新的流量洼地。
 
微信图片_20180725162426.jpg


作为一名环信生态圈资深开发者,本着对技术的热衷,对环信的眷恋和对党的忠诚,基于环信即时通讯云写了“直播购物小程序”,目前项目源码已全部免费开放,希望对有需求的企业和开发者提供一个思路和参考。
直播购物小程序源码github地址:https://github.com/YuTongNetworkTechnology/wechat_live/tree/master 
git打不开可直接点下面链接下载



预览图.jpg

直播购物小程序运行预览图 
 
小程序体验指南(仅需两步):
 
1、下载微信小程序开发工具,下载地址:https://developers.weixin.qq.c ... .html 
 
Catch9A07(07-20-17-38-30).jpg

2、导入源码:将附件的源码解压直接导入 


Catch1C69(07-20-17-38-30).jpg


环信小程序直播技术文档
一、 使用的技术
1、 环信IM直播室。
2、 微信小程序实时音视频播放组件live-player。
3、 推流软件(obs、易推流)等推流。
4、 视频流服务器(UCLOUD、七牛、腾讯)等视频流服务器。
二、 系统使用流程。
1、 视频推流软件将视频流推到流服务器。
2、 打开视频直播demo小程序注册环信账号。
3、 进入软件直播室进行测试。
三、 技术流程及使用的SDk
1、 注册环信账号
打开https://www.easemob.com/ 环信官网,点击右上角注册按钮,选择[注册即时通讯云]
1.png

填写对相关信息进行注册

2.png

注册成功后进行登录
3.png

注:新注册用户需进行账号的认证。
2、 直播应用创建
登录成功点击应用列表选择创建应用
4.png

输入应用名称等信息
 

5.png

创建成功后点击应用进入

6.png

需要注意的是应用的OrgName 和AppName这两个是以后都需要用到的两个参数变量
7.png

3、 直播创建
1)在创建直播之前需要对应用进行设置首先需要设置应用的直播流地址
第一步获取应用管理员的Token
curl -X POST "https://a1.easemob.com/[应用OrgName]/[应用AppName]/token" -d '{"grant_type":"client_credentials","client_id":"[应用client_id]","client_secret":"[应用] client_secret"}'
返回格式
{
"access_token":"YWMtWY779DgJEeS2h9OR7fw4QgAAAUmO4Qukwd9cfJSpkWHiOa7MCSk0MrkVIco",
"expires_in":5184000,
"application":"c03b3e30-046a-11e4-8ed1-5701cdaaa0e4"












第二步设置直播流地址
curl -X POST -H "Authorization: Bearer [管理员Token]"  " https://a1.easemob.com/[应用OrgName]/[应用AppName]/liverooms/stream_url -d '{"pc_pull":"[pc拉流地址]","pc_push":"[pc推流地址]","mobile_pull":"[手机拉流地址]","mobile_push":"[手机推流地址]"}'"
成功返回格式:
{
"action": "post",
"application": "e1a09de0-0e03-11e7-ad8e-a1d913615409",
"uri": "http://127.0.0.1:8080/easemob- ... ot%3B,
"entities": [ ],
"data": {
"pc_pull": true,
"mobile_push": true,
"mobile_pull": true,
"pc_push": true
},
"timestamp": 1494084474885,
"duration": 1,
"organization": "easemob-demo",
"applicationName": "chatdemoui"
}












2)创建主播
点击IM用户

8.png

点击注册IM用户

9.png

填写用户信息

10.png

创建用户的过程同样也可以通过REST API形式进行
curl -X POST -i " https://a1.easemob.com/[应用OrgName]/[应用AppName]/users" -d '{"username":"[用户名]","password":"[密码]"}'

注:应用必须为开放注册

11.png

将注册的用户添加为主播
curl -X POST -H "Authorization: [管理员Token]"  https://a1.easemob.com/[应用OrgName]/[应用AppName]/super_admin -d'{"superadmin":"[IM用户名]"}'
返回结果示例:
{
"action": "post",
"application": "4d7e4ba0-dc4a-11e3-90d5-e1ffbaacdaf5",
"uri": "http://127.0.0.1:8080/easemob- ... ot%3B,
"entities": [ ],
"data": {
"result": "success"
},
"timestamp": 1496236798886,
"duration": 0,
"organization": "easemob-demo",
"applicationName": "chatdemoui"
}












3)创建直播
点击直播

12.png

点击新建房间

13.png

填写房间信息
14.png

创建房间同时也可以使用REST API形式进行详情可以查看http://docs.easemob.com/im/live/server-integration环信官方文档。
4、 小程序demo集成使用
小程序直播购物demo集成官方WebIM SDK详情请查看https://github.com/easemob/webim-weixin-xcx
Demo具体配置如下
打开demo 下sdk配置文件

15.png

修改appkey为自己应用的appkey

16.png

打开pages/live/index.js修改房间默认拉流地址及直播间房间号

17.png

四、 扩展说明
Demo中房间为固定测试房间,实际使用中应获取环信直播的房间信息及房间列表。具体如下:
获取直播间列表:
curl -X GET -H "Authorization: Bearer  [用户Token]"  https://a1.easemob.com/[应用OrgName]/[应用AppName]/liverooms?ongoing=true&limit=[获取数量]&cursor=[游标地址(不填写为充开始查询)]

响应:
{
"action": "get",
"application": "4d7e4ba0-dc4a-11e3-90d5-e1ffbaacdaf5",
"params": {
"cursor": [
"ZGNiMjRmNGY1YjczYjlhYTNkYjk1MDY2YmEyNzFmODQ6aW06Y2hhdHJvb206ZWFzZW1vYi1kZW1vI2NoYXRkZW1vdWk6MzE"
],
"ongoing": [
"true"
],
"limit": [
"2"
]
},
"uri": "http://127.0.0.1:8080/easemob- ... ot%3B,
"entities": [ ],
"data": [
{
"id": "1924",
"chatroom_id": "17177265635330",
"title": "具体了",
"desc": "就咯",
"startTime": 1495779917352,
"endTime": 1495779917352,
"anchor": "wuls",
"gift_count": 0,
"praise_count": 0,
"current_user_count": 8,
"max_user_count": 9,
"status": "ongoing",
"cover_picture_url": "",
"pc_pull_url": "rtmp://vlive3.rtmp.cdn.ucloud.com.cn/ucloud/easemob-demo_chatdemoui_1924_1",
"pc_push_url": "rtmp://publish3.cdn.ucloud.com.cn/ucloud/easemob-demo_chatdemoui_1924_1",
"mobile_pull_url": "rtmp://vlive3.rtmp.cdn.ucloud.com.cn/ucloud/easemob-demo_chatdemoui_1924_1",
"mobile_push_url": "rtmp://publish3.cdn.ucloud.com.cn/ucloud/easemob-demo_chatdemoui_1924_1"
},
{
"id": "1922",
"chatroom_id": "17175003856897",
"title": "香山",
"desc": "随便",
"startTime": 1495777760957,
"endTime": 1495777760957,
"anchor": "sx001",
"gift_count": 0,
"praise_count": 8,
"current_user_count": 1,
"max_user_count": 3,
"status": "ongoing",
"cover_picture_url": "http://127.0.0.1:8080/easemob- ... ot%3B,
"pc_pull_url": "rtmp://vlive3.rtmp.cdn.ucloud.com.cn/ucloud/easemob-demo_chatdemoui_1922_1",
"pc_push_url": "rtmp://publish3.cdn.ucloud.com.cn/ucloud/easemob-demo_chatdemoui_1922_1",
"mobile_pull_url": "rtmp://vlive3.rtmp.cdn.ucloud.com.cn/ucloud/easemob-demo_chatdemoui_1922_1",
"mobile_push_url": "rtmp://publish3.cdn.ucloud.com.cn/ucloud/easemob-demo_chatdemoui_1922_1"
}
],
"timestamp": 1496303336669,
"duration": 0,
"organization": "easemob-demo",
"applicationName": "chatdemoui",
"cursor": "ZGNiMjRmNGY1YjczYjlhYTNkYjk1MDY2YmEyNzFmODQ6aW06Y2hhdHJvb206ZWFzZW1vYi1kZW1vI2NoYXRkZW1vdWk6NDk",
"count": 2
}












获取直播间详情:
curl -X GET -H "Authorization: Bearer [用户Token]" " https://a1.easemob.com/[应用OrgName]/[应用AppName]/[房间id]/status"
响应:
{
"action": "get",
"application": "4d7e4ba0-dc4a-11e3-90d5-e1ffbaacdaf5",
"uri": "http://127.0.0.1:8080/easemob- ... ot%3B,
"entities": [ ],
"data": {
"liveRoomID": "1946",
"status": "ongoing"
},
"timestamp": 1496234759930,
"duration": 0,
"organization": "easemob-demo",
"applicationName": "chatdemoui",
"count": 0
}














 
使用环信直播购物小程序遇到任何问题欢迎跟帖讨论。
18
评论

【新手快速入门】集成环信常见问题+解决方案汇总 常见问题

dujiepeng 发表了文章 • 17305 次浏览 • 2017-05-22 15:51 • 来自相关话题

   这里整理了集成环信的常见问题和一些功能的实现思路,希望能帮助到大家。感谢热心的开发者贡献,大家在观看过程中有不明白的地方欢迎直接跟帖咨询。
 
ios篇
APNs证书创建和上传到环信后台头像昵称的简述和处理方案音视频离线推送Demo实现环信服务器聊天记录保存多久?离线收不到好友请求IOS中环信聊天窗口如何实现文件发送和预览的功能ios集成常见问题环信推送的一些常见问题实现名片|红包|话题聊天室等自定义cell
 
Android篇
Android sdk 的两种导入方式环信3.0SDK集成小米推送教程EaseUI库中V4、v7包冲突解决方案Android EaseUI里的百度地图替换为高德地图android扩展消息(名片集成)关于会话列表的置顶聊天java.lang.UnsatisfiedLinkError: 的问题android 端 app 后台被杀死收不到消息的解决方案
昵称头像篇
android中如何显示开发者服务器上的昵称和头像 Android中显示头像(接上一篇文章看)环信(Android)设置头像和昵称的方法(最简单暴力的基于环信demo的集成)IOS中如何显示开发者服务器上的昵称和头像【环信公开课第12期视频回放】-所有关于环信IM昵称头像的问题听这课就够了
 
直播篇
一言不合你就搞个直播APP
 
客服集成
IM-SDK和客服SDK并存开发指南—Android篇IM-SDK和客服SDK并存开发指南—iOS篇
 
开源项目
Android简版demoios简版demo凡信2.0:超仿微信的开源项目 凡信3.0:携直播和红包而来高仿微信:Github 3,515 Star方圆十里:环信编程大赛冠军项目泛聊:定一个小目标写一个QQSlack聊天机器人:一天时间做一个聊天机器人TV视频通话:在电视上视频通话视频通话:Android手机视频通话酷信:ios高仿微信公众号助手:与订阅用户聊天沟通
 
持续更新ing...小伙伴们还有什么想知道欢迎跟帖提出。
  查看全部
   这里整理了集成环信的常见问题和一些功能的实现思路,希望能帮助到大家。感谢热心的开发者贡献,大家在观看过程中有不明白的地方欢迎直接跟帖咨询。
 
ios篇

 
Android篇

昵称头像篇

 
直播篇
  1. 一言不合你就搞个直播APP

 
客服集成
  1. IM-SDK和客服SDK并存开发指南—Android篇
  2. IM-SDK和客服SDK并存开发指南—iOS篇

 
开源项目

 
持续更新ing...小伙伴们还有什么想知道欢迎跟帖提出。
 
1
评论

easeUI聊天界面中好友头像是如何传值的 环信_Android

Celebrate_G 发表了文章 • 583 次浏览 • 2018-01-26 13:47 • 来自相关话题

easeUI聊天界面中好友头像是如何传值的
easeUI聊天界面中好友头像是如何传值的
1
评论

一款基于环信开发的APP-超级家委会 环信_Android 环信_iOS 开源项目 SDK Hyphenate

magic_陌 发表了文章 • 748 次浏览 • 2018-01-04 10:02 • 来自相关话题

【产品简介】
 
“超级家委会”是一款基于环信开发的集活动、聊天、项目管理为一体的APP。

如需项目合作,请联系:石锋 18616870207(微信同号)

【功能介绍】

消息

享畅聊,与微信一样好用的通讯功能,免费即时沟通,但在这里只聊工作,去除娱乐化,支持单聊、普通群聊、活动群聊、部门群聊、团队群聊。






【单聊】和好友实时沟通
【群聊】邀请特定的人组建群聊
【活动群聊】对活动感兴趣的人员可以一起畅所欲言,也可和主办方沟通疑问,活动群聊 页面可一键直达活动
【部门/团队群聊】提供团队内部聊天功能,随时与同伴和团队沟通和讨论工作,让沟通更顺畅
【系统消息】实时接收重要信息的通知,如审核申请,报名信息,关注,评论等,并及时做出反馈;
 
实现功能
好友/群内的文字、表情、图片、位置、收藏、名片发送和接收查看群信息快速查找新建群 系统消息推送删除会话获取未读消息@功能正在实现中...





















 
项目

提供了包括项目管理、行政办公、教育培训、营销工具等基本应用和丰富的插件功能,通过精心设计打造出体验出色的应用,且每个项目可直达相应群聊,让你和团队成员随时随地参与协作。





 
【快速立项】明确工作目标并创建项目 ,邀请团队成员加入项目一起来开展工作;
【任务管理】新建任务,指派执行者和添加参与者,添加并更新相关任务信息;
【工作安排】创建「日程」来安排会议、 记录外出和预约重点活动等等工作,也随时了解其他项目成员的工作安排;
【进展同步】通过任务列表随时关注项目进展的更新,进入项目查看具体的进展信息;
【插件丰富】丰富的移动办公应用接入,任务、签到、审批、笔记、文件、费用、班级、学生老师、课程、消课等,应有尽有。
 
活动
您可以参加活动聚会,学习一项新技能,带上孩子发现未知…更特别的是,您还可以自己组织发起活动,呼朋唤友一起玩耍。





 
【主办方】提供从发布活动、活动推广、报名管理到财务管理等全流程完整解决方案
【参与者】找到感兴趣的活动,志同道合的朋友,长假远行,家长课堂,周边游,培训课 程,聚会沙龙,冬夏令营,手工课程,多种活动,丰富娱乐生活
【报名信息 随时查收】支持自定义设置报名表单,报名信息详情可查,支持导出
【精彩活动 乐享群聊】一起进入活动群聊,可以和其他参与者一起互动
 
联系人
搜索好友/群 添加好友/群 发送/接受好友申请










 
【技术实现】

本项目是基于官方最新SDK Hyphenate 进行开发 页面效果基于EasyUI调整 和微信页面效果看齐。
 
主要实现功能 
 
1、注册 登录 自动登录 重连 退出登录EMError *error = [[EMClient sharedClient] registerWithUsername:@"8001" password:@"111111"];
if (error==nil) {
NSLog(@"注册成功");
}
EMError *error = [[EMClient sharedClient] loginWithUsername:@"8001" password:@"111111"];
if (!error) {
NSLog(@"登录成功");
}

自动登录:即首次登录成功后,不需要再次调用登录方法,在下次 APP 启动时,SDK 会自动为您登录。并且如果您自动登录失败,也可以读取到之前的会话信息。

SDK 中自动登录属性默认是关闭的,需要您在登录成功后设置,以便您在下次 APP 启动时不需要再次调用环信登录,并且能在没有网的情况下得到会话列表。

EMError *error = [[EMClient sharedClient] loginWithUsername:@"8001" password:@"111111"];
if (!error)
{
[[EMClient sharedClient].options setIsAutoLogin:YES];
}
2. 消息
IM 交互实体,在 SDK 中对应的类型是 EMMessage。EMMessage 由 EMMessageBody 组成。

构造文字消息 构造图片消息 构造图片消息 构造位置消息 构造语音消息 构造视频消息 构造扩展消息(系统消息)构造文字消息
EMTextMessageBody *body = [[EMTextMessageBody alloc] initWithText:@"要发送的消息"];
NSString *from = [[EMClient sharedClient] currentUsername];

//生成Message
EMMessage *message = [[EMMessage alloc] initWithConversationID:@"6001" from:from to:@"6001" body:body ext:messageExt];
message.chatType = EMChatTypeChat;// 设置为单聊消息

构造图片消息
EMImageMessageBody *body = [[EMImageMessageBody alloc] initWithData:data displayName:@"image.png"];
// body.compressionRatio = 1.0f; 1.0表示发送原图不压缩。默认值是0.6,压缩的倍数是0.6倍
NSString *from = [[EMClient sharedClient] currentUsername];

//生成Message
EMMessage *message = [[EMMessage alloc] initWithConversationID:@"6001" from:from to:@"6001" body:body ext:messageExt];
message.chatType = EMChatTypeChat;// 设置为单聊消息

构造扩展消息
// 以单聊消息举例
EMTextMessageBody *body = [[EMTextMessageBody alloc] initWithText:@"要发送的消息"];
NSString *from = [[EMClient sharedClient] currentUsername];

//生成Message
EMMessage *message = [[EMMessage alloc] initWithConversationID:@"6001" from:from to:@"6001" body:body ext:messageExt];
message.chatType = EMChatTypeChat;// 设置为单聊消息
//message.chatType = EMChatTypeGroupChat;// 设置为群聊消息
//message.chatType = EMChatTypeChatRoom;// 设置为聊天室消息
message.ext = @{@"key":@"value"}; // 扩展消息部分

扩展消息主要用要系统消息里
3. 会话

操作聊天消息 EMMessage 的容器,在 SDK 中对应的类型是 EMConversation。

新建 、 获取一个会话 (根据 conversationId 创建一个 conversation)[[EMClient sharedClient].chatManager getConversation:@"8001" type:EMConversationTypeChat createIfNotExist:YES];
//EMConversationTypeChat 单聊会话
//EMConversationTypeGroupChat 群聊会话
//EMConversationTypeChatRoom 聊天室会话


getConversation:创建与8001的会话
type:会话类型
createIfNotExist:不存在是否创建
 
4. 删除会话

删除单个会话[[EMClient sharedClient].chatManager deleteConversation:@"8001" isDeleteMessages:YES completion:^(NSString *aConversationId, EMError *aError){
//code
}];


deleteConversation: 删除与8001的会话
deleteMessages: 删除会话中的消息
 
5. 获取会话列表

获取所有会话 (内存中有则从内存中取,否则从db中取)NSArray *conversations = [[EMClient sharedClient].chatManager getAllConversations];
6. 获取会话未读消息 [EMConversation unreadMessagesCount]; 显示红点
7. 聊天 (发送消息 接收消息 解析普通消息 解析扩展消息)

登录成功之后才能进行聊天操作。发消息时,单聊和群聊调用的是统一接口,区别只是要设置下 message.chatType。/*!
@property
@brief 发送消息
@discussion
异步方法
*/
- (void)sendMessage:(EMMessage *)aMessage
progress:(void (^)(int progress))aProgressBlock
completion:(void (^)(EMMessage *message, EMError *error))aCompletionBlock;

//调用:[[EMClient sharedClient].chatManager sendMessage:message progress:nil completion:^(EMMessage *aMessage, EMError *aError) {}];

//消息回调:EMChatManagerDelegate

//移除消息回调
[[EMClient sharedClient].chatManager removeDelegate:self];

//注册消息回调
[[EMClient sharedClient].chatManager addDelegate:self delegateQueue:nil];

/*!
@method
@brief 接收到一条及以上非cmd消息
*/
- (void)messagesDidReceive:(NSArray *)aMessages;

解析普通消息
// 收到消息的回调,带有附件类型的消息可以用 SDK 提供的下载附件方法下载(后面会讲到)
- (void)messagesDidReceive:(NSArray *)aMessages {
for (EMMessage *message in aMessages) {
EMMessageBody *msgBody = message.body;
switch (msgBody.type) {
case EMMessageBodyTypeText:
{
// 收到的文字消息
EMTextMessageBody *textBody = (EMTextMessageBody *)msgBody;
NSString *txt = textBody.text;
NSLog(@"收到的文字是 txt -- %@",txt);
}
break;
case EMMessageBodyTypeImage:

解析扩展消息
- (void)cmdMessagesDidReceive:(NSArray *)aCmdMessages {
for (EMMessage *message in aCmdMessages) {
// cmd消息中的扩展属性
NSDictionary *ext = message.ext;
NSLog(@"cmd消息中的扩展属性是 -- %@",ext)
}
}
// 收到消息回调
- (void)messagesDidReceive:(NSArray *)aMessages {
for (EMMessage *message in aMessages) {
// 消息中的扩展属性
NSDictionary *ext = message.ext;
NSLog(@"消息中的扩展属性是 -- %@",ext);
}
}



 8. 好友管理 (本项目的好友管理是自己服务器上管理的)

9. 好友申请

发送好友申请 EMError *error = [[EMClient sharedClient].contactManager addContact:@"6001" message:@"我想加您为好友"];
if (!error) {
NSLog(@"添加成功");
}
监听加好友请求 (项目里面 发送系统消息)/*!
* 用户A发送加用户B为好友的申请,用户B会收到这个回调
*
* @param aUsername 用户名
* @param aMessage 附属信息
*/
- (void)friendRequestDidReceiveFromUser:(NSString *)aUsername
message:(NSString *)aMessage;
同意加好友申请 EMError *error = [[EMClient sharedClient].contactManager acceptInvitationForUsername:@"8001"];
if (!error) {
NSLog(@"发送同意成功");
}
10 群组管理
创建群 后台创建的
加入群组 添人进群 退出群组 解散群组 修改群描述 获取群组成员列表

11 群组管理
1.后台配置推送证书
2.代码配置 APNs 使用的推送证书。
3.代码注册离线推送

【联系我们】
如需项目合作,请联系
石锋 18616870207 (微信同号) 查看全部
【产品简介】
 
“超级家委会”是一款基于环信开发的集活动、聊天、项目管理为一体的APP。

如需项目合作,请联系:石锋 18616870207(微信同号)

【功能介绍】

消息

享畅聊,与微信一样好用的通讯功能,免费即时沟通,但在这里只聊工作,去除娱乐化,支持单聊、普通群聊、活动群聊、部门群聊、团队群聊。

聊天.jpg


【单聊】和好友实时沟通
【群聊】邀请特定的人组建群聊
【活动群聊】对活动感兴趣的人员可以一起畅所欲言,也可和主办方沟通疑问,活动群聊 页面可一键直达活动
【部门/团队群聊】提供团队内部聊天功能,随时与同伴和团队沟通和讨论工作,让沟通更顺畅
【系统消息】实时接收重要信息的通知,如审核申请,报名信息,关注,评论等,并及时做出反馈;
 
实现功能
  • 好友/群内的文字、表情、图片、位置、收藏、名片发送和接收
  • 查看群信息
  • 快速查找
  • 新建群 
  • 系统消息推送
  • 删除会话
  • 获取未读消息
  • @功能正在实现中...


聊天功能介绍1.jpg

聊天功能介绍2.jpg

聊天功能介绍3.jpg

聊天功能介绍4.jpg

聊天功能介绍6.jpg

 
项目

提供了包括项目管理、行政办公、教育培训、营销工具等基本应用和丰富的插件功能,通过精心设计打造出体验出色的应用,且每个项目可直达相应群聊,让你和团队成员随时随地参与协作。

聊天功能介绍8.jpg

 
【快速立项】明确工作目标并创建项目 ,邀请团队成员加入项目一起来开展工作;
【任务管理】新建任务,指派执行者和添加参与者,添加并更新相关任务信息;
【工作安排】创建「日程」来安排会议、 记录外出和预约重点活动等等工作,也随时了解其他项目成员的工作安排;
【进展同步】通过任务列表随时关注项目进展的更新,进入项目查看具体的进展信息;
【插件丰富】丰富的移动办公应用接入,任务、签到、审批、笔记、文件、费用、班级、学生老师、课程、消课等,应有尽有。
 
活动
您可以参加活动聚会,学习一项新技能,带上孩子发现未知…更特别的是,您还可以自己组织发起活动,呼朋唤友一起玩耍。

聊天功能介绍9.jpg

 
【主办方】提供从发布活动、活动推广、报名管理到财务管理等全流程完整解决方案
【参与者】找到感兴趣的活动,志同道合的朋友,长假远行,家长课堂,周边游,培训课 程,聚会沙龙,冬夏令营,手工课程,多种活动,丰富娱乐生活
【报名信息 随时查收】支持自定义设置报名表单,报名信息详情可查,支持导出
【精彩活动 乐享群聊】一起进入活动群聊,可以和其他参与者一起互动
 
联系人
  • 搜索好友/群 
  • 添加好友/群 
  • 发送/接受好友申请


聊天功能介绍10.jpg


聊天功能介绍5.jpg

 
【技术实现】

本项目是基于官方最新SDK Hyphenate 进行开发 页面效果基于EasyUI调整 和微信页面效果看齐。
 
主要实现功能 
 
1、注册 登录 自动登录 重连 退出登录
EMError *error = [[EMClient sharedClient] registerWithUsername:@"8001" password:@"111111"];
if (error==nil) {
NSLog(@"注册成功");
}
EMError *error = [[EMClient sharedClient] loginWithUsername:@"8001" password:@"111111"];
if (!error) {
NSLog(@"登录成功");
}

自动登录:即首次登录成功后,不需要再次调用登录方法,在下次 APP 启动时,SDK 会自动为您登录。并且如果您自动登录失败,也可以读取到之前的会话信息。

SDK 中自动登录属性默认是关闭的,需要您在登录成功后设置,以便您在下次 APP 启动时不需要再次调用环信登录,并且能在没有网的情况下得到会话列表。

EMError *error = [[EMClient sharedClient] loginWithUsername:@"8001" password:@"111111"];
if (!error)
{
[[EMClient sharedClient].options setIsAutoLogin:YES];
}

2. 消息
IM 交互实体,在 SDK 中对应的类型是 EMMessage。EMMessage 由 EMMessageBody 组成。

构造文字消息 构造图片消息 构造图片消息 构造位置消息 构造语音消息 构造视频消息 构造扩展消息(系统消息)
构造文字消息
EMTextMessageBody *body = [[EMTextMessageBody alloc] initWithText:@"要发送的消息"];
NSString *from = [[EMClient sharedClient] currentUsername];

//生成Message
EMMessage *message = [[EMMessage alloc] initWithConversationID:@"6001" from:from to:@"6001" body:body ext:messageExt];
message.chatType = EMChatTypeChat;// 设置为单聊消息

构造图片消息
EMImageMessageBody *body = [[EMImageMessageBody alloc] initWithData:data displayName:@"image.png"];
// body.compressionRatio = 1.0f; 1.0表示发送原图不压缩。默认值是0.6,压缩的倍数是0.6倍
NSString *from = [[EMClient sharedClient] currentUsername];

//生成Message
EMMessage *message = [[EMMessage alloc] initWithConversationID:@"6001" from:from to:@"6001" body:body ext:messageExt];
message.chatType = EMChatTypeChat;// 设置为单聊消息

构造扩展消息
// 以单聊消息举例
EMTextMessageBody *body = [[EMTextMessageBody alloc] initWithText:@"要发送的消息"];
NSString *from = [[EMClient sharedClient] currentUsername];

//生成Message
EMMessage *message = [[EMMessage alloc] initWithConversationID:@"6001" from:from to:@"6001" body:body ext:messageExt];
message.chatType = EMChatTypeChat;// 设置为单聊消息
//message.chatType = EMChatTypeGroupChat;// 设置为群聊消息
//message.chatType = EMChatTypeChatRoom;// 设置为聊天室消息
message.ext = @{@"key":@"value"}; // 扩展消息部分

扩展消息主要用要系统消息里

3. 会话

操作聊天消息 EMMessage 的容器,在 SDK 中对应的类型是 EMConversation。

新建 、 获取一个会话 (根据 conversationId 创建一个 conversation)
[[EMClient sharedClient].chatManager getConversation:@"8001" type:EMConversationTypeChat createIfNotExist:YES];
//EMConversationTypeChat 单聊会话
//EMConversationTypeGroupChat 群聊会话
//EMConversationTypeChatRoom 聊天室会话


getConversation:创建与8001的会话
type:会话类型
createIfNotExist:不存在是否创建
 
4. 删除会话

删除单个会话
[[EMClient sharedClient].chatManager deleteConversation:@"8001" isDeleteMessages:YES completion:^(NSString *aConversationId, EMError *aError){
//code
}];


deleteConversation: 删除与8001的会话
deleteMessages: 删除会话中的消息
 
5. 获取会话列表

获取所有会话 (内存中有则从内存中取,否则从db中取)
NSArray *conversations = [[EMClient sharedClient].chatManager getAllConversations];

6. 获取会话未读消息 
[EMConversation unreadMessagesCount]; 显示红点       

7. 聊天 (发送消息 接收消息 解析普通消息 解析扩展消息)

登录成功之后才能进行聊天操作。发消息时,单聊和群聊调用的是统一接口,区别只是要设置下 message.chatType。
/*!
@property
@brief 发送消息
@discussion
异步方法
*/
- (void)sendMessage:(EMMessage *)aMessage
progress:(void (^)(int progress))aProgressBlock
completion:(void (^)(EMMessage *message, EMError *error))aCompletionBlock;

//调用:[[EMClient sharedClient].chatManager sendMessage:message progress:nil completion:^(EMMessage *aMessage, EMError *aError) {}];

//消息回调:EMChatManagerDelegate

//移除消息回调
[[EMClient sharedClient].chatManager removeDelegate:self];

//注册消息回调
[[EMClient sharedClient].chatManager addDelegate:self delegateQueue:nil];

/*!
@method
@brief 接收到一条及以上非cmd消息
*/
- (void)messagesDidReceive:(NSArray *)aMessages;

解析普通消息
// 收到消息的回调,带有附件类型的消息可以用 SDK 提供的下载附件方法下载(后面会讲到)
- (void)messagesDidReceive:(NSArray *)aMessages {
for (EMMessage *message in aMessages) {
EMMessageBody *msgBody = message.body;
switch (msgBody.type) {
case EMMessageBodyTypeText:
{
// 收到的文字消息
EMTextMessageBody *textBody = (EMTextMessageBody *)msgBody;
NSString *txt = textBody.text;
NSLog(@"收到的文字是 txt -- %@",txt);
}
break;
case EMMessageBodyTypeImage:

解析扩展消息
- (void)cmdMessagesDidReceive:(NSArray *)aCmdMessages {
for (EMMessage *message in aCmdMessages) {
// cmd消息中的扩展属性
NSDictionary *ext = message.ext;
NSLog(@"cmd消息中的扩展属性是 -- %@",ext)
}
}
// 收到消息回调
- (void)messagesDidReceive:(NSArray *)aMessages {
for (EMMessage *message in aMessages) {
// 消息中的扩展属性
NSDictionary *ext = message.ext;
NSLog(@"消息中的扩展属性是 -- %@",ext);
}
}



 8. 好友管理 (本项目的好友管理是自己服务器上管理的)

9. 好友申请

发送好友申请
 EMError *error = [[EMClient sharedClient].contactManager addContact:@"6001" message:@"我想加您为好友"];
if (!error) {
NSLog(@"添加成功");
}

监听加好友请求 (项目里面 发送系统消息)
/*!
* 用户A发送加用户B为好友的申请,用户B会收到这个回调
*
* @param aUsername 用户名
* @param aMessage 附属信息
*/
- (void)friendRequestDidReceiveFromUser:(NSString *)aUsername
message:(NSString *)aMessage;

同意加好友申请 
EMError *error = [[EMClient sharedClient].contactManager acceptInvitationForUsername:@"8001"];
if (!error) {
NSLog(@"发送同意成功");
}

10 群组管理
创建群 后台创建的
加入群组 添人进群 退出群组 解散群组 修改群描述 获取群组成员列表

11 群组管理
1.后台配置推送证书
2.代码配置 APNs 使用的推送证书。
3.代码注册离线推送

【联系我们】
如需项目合作,请联系
石锋 18616870207 (微信同号)
0
评论

初步引入easeui遇到的问题 环信_Android

FredKang 发表了文章 • 785 次浏览 • 2016-11-07 10:18 • 来自相关话题

分享几个我引入EaseUI遇到的问题及解决方法
 
duplicate 项目中重复依赖了包
 搜索 BackStackState 选取一个依赖就行
 
.so文件报错找不到
 这个错误在app的build.gradle里面添加下面这句就好了。
sourceSets { main { jniLibs.srcDirs = ['libs'] } }
 
Dex问题
 这个错误在app的build.gradle里面添加下面这句就好了。
android {
    defaultConfig {
        multiDexEnabled true

    }
}
Error:Configuration with name 'default' not found
 这个问题应该是gradle版本问题,进工作目录修改app的gradle信息 查看全部
分享几个我引入EaseUI遇到的问题及解决方法
 
  • duplicate 项目中重复依赖了包

 搜索 BackStackState 选取一个依赖就行
 
  • .so文件报错找不到

 这个错误在app的build.gradle里面添加下面这句就好了。
sourceSets { main { jniLibs.srcDirs = ['libs'] } }
 
  • Dex问题

 这个错误在app的build.gradle里面添加下面这句就好了。
android {
    defaultConfig {
        multiDexEnabled true

    }
}
  • Error:Configuration with name 'default' not found

 这个问题应该是gradle版本问题,进工作目录修改app的gradle信息
3
评论

关于会话列表的置顶聊天 Android 环信_Android

陈日明 发表了文章 • 3832 次浏览 • 2016-10-27 16:18 • 来自相关话题

最近搞完了置顶聊天,来写篇文章分享下经验。

其实刚刚开始 ,我自己在想,我是不是要去做出类似于QQ那种的滑动,然后显示置顶和删除。




我就开始写,写完了之后然后去置顶,取消置顶,其实是有用的,但是为什么我到最后还是没有选择这个效果呢?

因为这个最后是要到Adapter里面去设置这两个按钮,我本人并不喜欢这东西放到Adapter里面,接下来强迫症来了,直接把代码全部删除,换一种思路..........我想到了微信,点击弹出一个菜单,和dialog很很像的一个功能。

好,来跟着我一起走一下思路。

首先是,要实现置顶聊天,那么我们就要有两个List集合,一个是置顶的,一个是不是置顶的,然后置顶的是需要一个小小的数据库去保存置顶的对话人的UserName;这里,环信给出了EMConversation的一个方法,带大家看看技术文档。





这里框出来的就是我们要用的至关重要的方法,特别重要,




看下这个文档里面说的非常清楚,也就是扩展字段,设置一个扩展字段我们才知道这条Conversation的特别之处,然后去判断这个会话有没有设置扩展消息,有的话,那就排到置顶的那个集合里面去。

接下来我们要准备的是数据库




也就是这两个东西,准备就绪,蓝后 ..... 要开始大动,也就是把关于会话列表里面的东西全部放到项目里面来。




所要动的就是这3个类,全部移动到项目中,因为数据库要在Adapter和ListView里面操作,这一步很简单,动动手就行。

那么这些全部做完之后,我们开始写代码了,仿照通讯录的数据库来




这里就是getset,然后在DemoHelper里面




蓝后,再Application里面去给它暴露出两个方法。




好了,数据库的东西是配置完成了,那么,问题就来了,怎么去启动数据库?




这样就添加了数据库,注意,这里添加了数据库之后,然后再去真正的写置顶的代码了。。。。

首先我们先看看会话列表界面




在setupView方法中,别忘了获取数据库里面的置顶会话。




这里直接贴出来了ConversationListFragment,这里就是把EaseUI里面的EaseConversationlistFragment里面的内容,然后BaseFragment也就是EaseBaseFragment里面的内容了。




主要加载会话的方法就是这个方法,主要代码就是synchronized里面的内容,这里很容易就能够理解For循环里面的内容,然后我们要在这里面判断,有没有会话是包含扩展字段的,有的话就将包含扩展字段的会话放入top_list这个集合里面;蓝后你们可以看到topList,这个List就是图10里面的topList,topMap也是图10里面的。蓝后,我们可以看到排序方法,也就是会话列表的排序方法(sortConversationByLastChatTime),这里我自己写了一个排序方法,并没有用到Pair。





其实这两个方法是一样的,一样的效果。

那么接下来,就是看看ConversationList





最主要的就是这个init方法,也没什么说的。。那么接下来就到ConversationAdapter




这里就和EaseUI里面的那个EaseConversationAdapter有点不一样了,EaseConversationAdapter里面是继承ArrayAdapter的,这里是继承BaseAdapter,在这里使用BaseAdapter为了方便大家能够理解。

我们只需要在getItem和getCount里面做点手脚就可以了




好了,到这里就完成了整个置顶会话的显示,那么接下来,我们就要写一下置顶功能了,这里很有必要说明下,个人意见,在写会话列表的时候,推荐使用一个Fragment去继承EaseConversationListFragment。继承之后我们就可以重写setUpView方法,在这方法里面我们进行一系列的操作。




这里就是用到的长按事件,然后显示一个Dialog,在Dialog里面去实现置顶功能的操作。这里由于代码过长,所以截两张图。。。。




图18主要就是Dialog的显示




在这里就是删除会话等这个按钮的点击事件。




在里就是置顶的点击事件了。。

好了 到这里已经完成了置顶的全部代码展示了。个人感觉还是很详细的,如果还是不懂,那就环信互帮互助-非官方 340452063来这,给你解答你的问题 查看全部
最近搞完了置顶聊天,来写篇文章分享下经验。

其实刚刚开始 ,我自己在想,我是不是要去做出类似于QQ那种的滑动,然后显示置顶和删除。
1.png

我就开始写,写完了之后然后去置顶,取消置顶,其实是有用的,但是为什么我到最后还是没有选择这个效果呢?

因为这个最后是要到Adapter里面去设置这两个按钮,我本人并不喜欢这东西放到Adapter里面,接下来强迫症来了,直接把代码全部删除,换一种思路..........我想到了微信,点击弹出一个菜单,和dialog很很像的一个功能。

好,来跟着我一起走一下思路。

首先是,要实现置顶聊天,那么我们就要有两个List集合,一个是置顶的,一个是不是置顶的,然后置顶的是需要一个小小的数据库去保存置顶的对话人的UserName;这里,环信给出了EMConversation的一个方法,带大家看看技术文档。

2.png

这里框出来的就是我们要用的至关重要的方法,特别重要,
3.png

看下这个文档里面说的非常清楚,也就是扩展字段,设置一个扩展字段我们才知道这条Conversation的特别之处,然后去判断这个会话有没有设置扩展消息,有的话,那就排到置顶的那个集合里面去。

接下来我们要准备的是数据库
4.png

也就是这两个东西,准备就绪,蓝后 ..... 要开始大动,也就是把关于会话列表里面的东西全部放到项目里面来。
5.png

所要动的就是这3个类,全部移动到项目中,因为数据库要在Adapter和ListView里面操作,这一步很简单,动动手就行。

那么这些全部做完之后,我们开始写代码了,仿照通讯录的数据库来
6.png

这里就是getset,然后在DemoHelper里面
7.png

蓝后,再Application里面去给它暴露出两个方法。
8.png

好了,数据库的东西是配置完成了,那么,问题就来了,怎么去启动数据库?
9.png

这样就添加了数据库,注意,这里添加了数据库之后,然后再去真正的写置顶的代码了。。。。

首先我们先看看会话列表界面
10.png

在setupView方法中,别忘了获取数据库里面的置顶会话。
11.png

这里直接贴出来了ConversationListFragment,这里就是把EaseUI里面的EaseConversationlistFragment里面的内容,然后BaseFragment也就是EaseBaseFragment里面的内容了。
12.png

主要加载会话的方法就是这个方法,主要代码就是synchronized里面的内容,这里很容易就能够理解For循环里面的内容,然后我们要在这里面判断,有没有会话是包含扩展字段的,有的话就将包含扩展字段的会话放入top_list这个集合里面;蓝后你们可以看到topList,这个List就是图10里面的topList,topMap也是图10里面的。蓝后,我们可以看到排序方法,也就是会话列表的排序方法(sortConversationByLastChatTime),这里我自己写了一个排序方法,并没有用到Pair。

13.png

其实这两个方法是一样的,一样的效果。

那么接下来,就是看看ConversationList

14.png

最主要的就是这个init方法,也没什么说的。。那么接下来就到ConversationAdapter
15.png

这里就和EaseUI里面的那个EaseConversationAdapter有点不一样了,EaseConversationAdapter里面是继承ArrayAdapter的,这里是继承BaseAdapter,在这里使用BaseAdapter为了方便大家能够理解。

我们只需要在getItem和getCount里面做点手脚就可以了
16.png

好了,到这里就完成了整个置顶会话的显示,那么接下来,我们就要写一下置顶功能了,这里很有必要说明下,个人意见,在写会话列表的时候,推荐使用一个Fragment去继承EaseConversationListFragment。继承之后我们就可以重写setUpView方法,在这方法里面我们进行一系列的操作。
17.png

这里就是用到的长按事件,然后显示一个Dialog,在Dialog里面去实现置顶功能的操作。这里由于代码过长,所以截两张图。。。。
18.png

图18主要就是Dialog的显示
19.png

在这里就是删除会话等这个按钮的点击事件。
20.png

在里就是置顶的点击事件了。。

好了 到这里已经完成了置顶的全部代码展示了。个人感觉还是很详细的,如果还是不懂,那就环信互帮互助-非官方 340452063来这,给你解答你的问题
18
评论

【环信集成笔记】进阶篇-android环信昵称头像解决方法 头像和昵称 环信集成 环信_Android 头像 设置头像

陈日明 发表了文章 • 5637 次浏览 • 2016-09-27 18:43 • 来自相关话题

当你刚刚集成环信的时候,在和自己android组的小伙伴玩的不亦乐乎的时候,当你过完这把瘾的时候,那么接下来,你就要考虑的是怎么让这个头像显示的是自己想要的头像,怎么让昵称显示自己的昵称.....

那么接下来,我来告诉大家,怎么解决昵称头像的问题,

首先,这篇文章是接在我大表哥江南孤鹜在im社区写的一篇文章之后写的,上个链接地址 Android获取昵称头像接下来,我对此文章做些补充:

我看到有些人在问,这个方法放在哪里?





好吧,大表哥没说出来,这个放在UserApiModel里面

那么接下来,大表哥写的是这样的,利用扩展消息去获取头像昵称,在这里我提醒下大家,要判断这个头像是自己的还是好友的




怎么判断呢,作为新手的我们,我推荐使用shareprefences在登陆的时候保存下自己的头像昵称,然后再这里获取,并且设置给扩展





在demohelper里面有个getuserinfo方法




这里就是把获取到的头像昵称设置给环信,然后显示出来,这里最重要,切记不要写错。

那么,到此为止,其实都说完了,可是,毕竟是一个延伸,怎么可能就此结束,接下来给大家看下,请求数据,然后设置给数据库





请求的过程我就不写了,这个大家都会,获取到username,id,logo,之后先要把头像,昵称存到userdao里面,如果userdao是环信的一个数据库,这个大家自己看看demo的代码就知道了,设置到这里,是为了在联系人列表里面显示,UserInfoCacheSvc.createOrUpdate(id,username,logo_img);这句就是把头像昵称放到大表哥写的数据库里面

最后,补充一下,忘记说了,导入框架




好了,这样就结束了,如果有什么还不明白,就加入大表哥粉丝群(环信IM互帮互助群 340452063),我会帮你解答一切问题 查看全部
当你刚刚集成环信的时候,在和自己android组的小伙伴玩的不亦乐乎的时候,当你过完这把瘾的时候,那么接下来,你就要考虑的是怎么让这个头像显示的是自己想要的头像,怎么让昵称显示自己的昵称.....

那么接下来,我来告诉大家,怎么解决昵称头像的问题,

首先,这篇文章是接在我大表哥江南孤鹜在im社区写的一篇文章之后写的,上个链接地址 Android获取昵称头像接下来,我对此文章做些补充:

我看到有些人在问,这个方法放在哪里?

1.png

好吧,大表哥没说出来,这个放在UserApiModel里面

那么接下来,大表哥写的是这样的,利用扩展消息去获取头像昵称,在这里我提醒下大家,要判断这个头像是自己的还是好友的
2.png

怎么判断呢,作为新手的我们,我推荐使用shareprefences在登陆的时候保存下自己的头像昵称,然后再这里获取,并且设置给扩展

3.png

在demohelper里面有个getuserinfo方法
4.png

这里就是把获取到的头像昵称设置给环信,然后显示出来,这里最重要,切记不要写错。

那么,到此为止,其实都说完了,可是,毕竟是一个延伸,怎么可能就此结束,接下来给大家看下,请求数据,然后设置给数据库

5.png

请求的过程我就不写了,这个大家都会,获取到username,id,logo,之后先要把头像,昵称存到userdao里面,如果userdao是环信的一个数据库,这个大家自己看看demo的代码就知道了,设置到这里,是为了在联系人列表里面显示,UserInfoCacheSvc.createOrUpdate(id,username,logo_img);这句就是把头像昵称放到大表哥写的数据库里面

最后,补充一下,忘记说了,导入框架
6.png

好了,这样就结束了,如果有什么还不明白,就加入大表哥粉丝群(环信IM互帮互助群 340452063),我会帮你解答一切问题
3
评论

【环信集成笔记】进阶篇-关于环信EaseUI集成冲突问题以及解决办法 Android 环信集成笔记 环信_Android

陈日明 发表了文章 • 4830 次浏览 • 2016-09-08 17:48 • 来自相关话题

是不是在集成EaseUI的时候看到这个问题顿时就像砸了电脑。或者说你在百度之后,发现很多人出现这个问题,然后按照他们的思路去改来改去,改到最后还是没有成功;然后不知所措的移动着鼠标,一次又一次的运行,等着奇迹的出现?

或者又说 ,你在试了他们的方法之后然后Clean,rebuild,重启AndroidStudio之后,还是没用,还是这个错。

下面我就跟大家讲一下,怎么去解决这个错误

首先这个错误的原因是因为V4的包冲突,也就是说,如果你的主项目里面也有V4的包,EaseUI里面也有V4的包,那么久删除主项目里面的V4的包,这个是不会报错的,尽管删除,删除之后,再次运行项目,试试看,如果还是报这个错的话,那就把EaseUi里面的V4的包删除,然后





必须选择到EaseUI,然后选到Dependencies,再点击加号里面的Library dependency,进去之后





选择V4包OK就可以了,添加之后,再次运行项目,如果还是不行的话,别着急,继续往下看




在app的配置文件里面的Android节点下加入图中的代码

dexOptions {
javaMaxHeapSize"4g"
}
aaptOptions.cruncherEnabled=false
aaptOptions.useNewCruncher=false


不管有没有用,你加入进去,然后再次运行项目,如果在不行的话,我想说你的运气真的好差。
 
 
在这里,很感谢某一个程序员的分享,这里还提供一个解决办法,就是删除easeui里面的谷歌服务的jar包,然后rebuild项目


运气差那就Clean,rebuild项目,或者更换EaseUI
 

 

如果还有问题的话 请加入 环信互帮互助-非官方 340452063  查看全部
1677578-57c07efa4e1ded40.png

是不是在集成EaseUI的时候看到这个问题顿时就像砸了电脑。或者说你在百度之后,发现很多人出现这个问题,然后按照他们的思路去改来改去,改到最后还是没有成功;然后不知所措的移动着鼠标,一次又一次的运行,等着奇迹的出现?

或者又说 ,你在试了他们的方法之后然后Clean,rebuild,重启AndroidStudio之后,还是没用,还是这个错。

下面我就跟大家讲一下,怎么去解决这个错误

首先这个错误的原因是因为V4的包冲突,也就是说,如果你的主项目里面也有V4的包,EaseUI里面也有V4的包,那么久删除主项目里面的V4的包,这个是不会报错的,尽管删除,删除之后,再次运行项目,试试看,如果还是报这个错的话,那就把EaseUi里面的V4的包删除,然后

1677578-48790976631f9919.png

必须选择到EaseUI,然后选到Dependencies,再点击加号里面的Library dependency,进去之后

1677578-e32191fbb5c8407c.png

选择V4包OK就可以了,添加之后,再次运行项目,如果还是不行的话,别着急,继续往下看
1677578-b8bc8862272e6530.png

在app的配置文件里面的Android节点下加入图中的代码

dexOptions {
javaMaxHeapSize"4g"
}
aaptOptions.cruncherEnabled=false
aaptOptions.useNewCruncher=false


不管有没有用,你加入进去,然后再次运行项目,如果在不行的话,我想说你的运气真的好差。
 
 
在这里,很感谢某一个程序员的分享,这里还提供一个解决办法,就是删除easeui里面的谷歌服务的jar包,然后rebuild项目


运气差那就Clean,rebuild项目,或者更换EaseUI
 

 

如果还有问题的话 请加入 环信互帮互助-非官方 340452063 
3
评论

使用Android Studio导入3.x环信demo 环信_Android

zhuhy 发表了文章 • 5568 次浏览 • 2016-07-10 10:55 • 来自相关话题

下载官网最新sdk,http://www.anlook.com/download/im
下载后,解压后在examples中有源码,导入chatdemoui3.0
首先




然后找到examples下的chatdemoui3.0目录下的bulid.gradle点击ok导入




导入之后,在setting.bulid中将后两行注掉





重新编译一下,然后会提示open file,打开后,在easeui的bulid.gradle中将这里注掉 查看全部
下载官网最新sdk,http://www.anlook.com/download/im
下载后,解压后在examples中有源码,导入chatdemoui3.0
首先
图1.png

然后找到examples下的chatdemoui3.0目录下的bulid.gradle点击ok导入
图2.png

导入之后,在setting.bulid中将后两行注掉

图3.png

重新编译一下,然后会提示open file,打开后,在easeui的bulid.gradle中将这里注掉
图4.png
3
评论

关于环信im用户ID大小写问题 bug 环信_Android

GXJ 发表了文章 • 2170 次浏览 • 2016-04-21 00:14 • 来自相关话题

情况是如果某个用户的名字是包含大写的,如 51170219870626850X,但是在另一个用户的 EMMessageListener 中的 onMessageReceived 中接收到的 username 是 51170219870626850x,在源码中的比较方法是 equals(String) 这时就会判断失误,判断结果是false,修正办法是将 equals 换成 equalsIgnoreCase 即可,下面附上图 查看全部
情况是如果某个用户的名字是包含大写的,如 51170219870626850X,但是在另一个用户的 EMMessageListener 中的 onMessageReceived 中接收到的 username 是 51170219870626850x,在源码中的比较方法是 equals(String) 这时就会判断失误,判断结果是false,修正办法是将 equals 换成 equalsIgnoreCase 即可,下面附上图
1
评论

环信关于昵称和图片的问题。android 环信_Android

xujianxiang 发表了文章 • 2299 次浏览 • 2016-02-25 14:59 • 来自相关话题

环信关于昵称和图片的问题。当你去跟技术交流的时候,他们一般会给你这样一个网页,http://www.imgeek.org/article/825307638。让你自忆去看,其它他说的已经很明白了,对于大神来进。但是对于菜鸟的我还是云里雾里,于是脑补各种知识。看大神留下的工程。查看我反正说的就是要写一个getUser的具体实现。我就试试看的心里乱写一气,最后成功了。我是修改了easeui中的代码
MainActivity.java,代码如下:

package com.easemob.easeuisimpledemo.ui; import java.util.HashMap; import java.util.Iterator; import java.util.Map; import android.R.integer; import android.content.Intent; import android.os.Bundle; import android.support.v4.app.Fragment; import android.support.v4.app.FragmentTransaction; import android.view.View; import android.widget.Button; import android.widget.TextView; import com.easemob.chat.EMConversation; import com.easemob.easeui.EaseConstant; import com.easemob.easeui.controller.EaseUI; import com.easemob.easeui.domain.EaseUser; import com.easemob.easeui.ui.EaseBaseActivity; import com.easemob.easeui.ui.EaseContactListFragment; import com.easemob.easeui.ui.EaseContactListFragment.EaseContactListItemClickListener; import com.easemob.easeui.ui.EaseConversationListFragment; import com.easemob.easeui.ui.EaseConversationListFragment.EaseConversationListItemClickListener; import com.easemob.easeui.utils.EaseCommonUtils; import com.easemob.easeuisimpledemo.R; public class MainActivity extends EaseBaseActivity{ private TextView unreadLabel; private Button[] mTabs; private EaseConversationListFragment conversationListFragment; private EaseContactListFragment contactListFragment; private SettingsFragment settingFragment; private Fragment[] fragments; private int index; private int currentTabIndex; Map<String, EaseUser> contactsMap = new HashMap<String, EaseUser>(); @Override protected void onCreate(Bundle arg0) { super.onCreate(arg0); setContentView(R.layout.activity_main); unreadLabel = (TextView) findViewById(R.id.unread_msg_number); mTabs = new Button[3]; mTabs[0] = (Button) findViewById(R.id.btn_conversation); mTabs[1] = (Button) findViewById(R.id.btn_address_list); mTabs[2] = (Button) findViewById(R.id.btn_setting); // 把第一个tab设为选中状态 mTabs[0].setSelected(true); conversationListFragment = new EaseConversationListFragment(); contactListFragment = new EaseContactListFragment(); settingFragment = new SettingsFragment(); contactListFragment.setContactsMap(getContacts()); contactsMap=getContacts(); conversationListFragment.setConversationListItemClickListener(new EaseConversationListItemClickListener() { @Override public void onListItemClicked(EMConversation conversation) { startActivity(new Intent(MainActivity.this, ChatActivity.class).putExtra(EaseConstant.EXTRA_USER_ID, conversation.getUserName())); } }); contactListFragment.setContactListItemClickListener(new EaseContactListItemClickListener() { @Override public void onListItemClicked(EaseUser user) { startActivity(new Intent(MainActivity.this, ChatActivity.class).putExtra(EaseConstant.EXTRA_USER_ID, user.getUsername())); } }); fragments = new Fragment[] { conversationListFragment, contactListFragment, settingFragment }; // 添加显示第一个fragment getSupportFragmentManager().beginTransaction().add(R.id.fragment_container, conversationListFragment) .add(R.id.fragment_container, contactListFragment).hide(contactListFragment).show(conversationListFragment) .commit(); EaseUI easeUI = EaseUI.getInstance(); //需要easeui库显示用户头像和昵称设置此provider easeUI.setUserProfileProvider(new EaseUI.EaseUserProfileProvider() { @Override public EaseUser getUser(String username) { if (contactsMap == null) { return null; } Iterator<Map.Entry<String, EaseUser>> iterator = contactsMap.entrySet().iterator(); while (iterator.hasNext()) { Map.Entry<String, EaseUser> entry = iterator.next(); //兼容以前的通讯录里的已有的数据显示,加上此判断,如果是新集成的可以去掉此判断 if (!entry.getKey().equals("item_new_friends") && !entry.getKey().equals("item_groups") && !entry.getKey().equals("item_chatroom") && !entry.getKey().equals("item_robots")) { if (entry.getKey().equals(username)) { //不显示黑名单中的用户 return entry.getValue(); } } } return null; } }); } /** * button点击事件 * * @param view */ public void onTabClicked(View view) { switch (view.getId()) { case R.id.btn_conversation: index = 0; break; case R.id.btn_address_list: index = 1; break; case R.id.btn_setting: index = 2; break; } if (currentTabIndex != index) { FragmentTransaction trx = getSupportFragmentManager().beginTransaction(); trx.hide(fragments[currentTabIndex]); if (!fragments[index].isAdded()) { trx.add(R.id.fragment_container, fragments[index]); } trx.show(fragments[index]).commit(); } mTabs[currentTabIndex].setSelected(false); // 把当前tab设为选中状态 mTabs[index].setSelected(true); currentTabIndex = index; } /** * 临时生成的数据,密码皆为123456,可以登录测试接发消息 * @return */ private Map<String, EaseUser> getContacts(){ Map<String, EaseUser> contacts = new HashMap<String, EaseUser>(); for(int i = 1; i <= 10; i++){ EaseUser user = new EaseUser("easeuitest" + i); contacts.put("easeuitest" + i, user); } EaseUser user = new EaseUser("xu"); user.setNick("xujianxiang"); user.setAvatar("http://happysports.jianxingquyundong.com/image/5,112347a89bf2"); contacts.put("xu", user); user = new EaseUser("shen"); user.setNick("shenxiaojuan"); user.setAvatar("http://happysports.jianxingquyundong.com/image/5,112347a89bf2"); contacts.put("shen", user); return contacts; } }
仅献给跟我一样的菜鸟,看了应该会懂, 查看全部
环信关于昵称和图片的问题。当你去跟技术交流的时候,他们一般会给你这样一个网页,http://www.imgeek.org/article/825307638。让你自忆去看,其它他说的已经很明白了,对于大神来进。但是对于菜鸟的我还是云里雾里,于是脑补各种知识。看大神留下的工程。查看我反正说的就是要写一个getUser的具体实现。我就试试看的心里乱写一气,最后成功了。我是修改了easeui中的代码
MainActivity.java,代码如下:

package com.easemob.easeuisimpledemo.ui; import java.util.HashMap; import java.util.Iterator; import java.util.Map; import android.R.integer; import android.content.Intent; import android.os.Bundle; import android.support.v4.app.Fragment; import android.support.v4.app.FragmentTransaction; import android.view.View; import android.widget.Button; import android.widget.TextView; import com.easemob.chat.EMConversation; import com.easemob.easeui.EaseConstant; import com.easemob.easeui.controller.EaseUI; import com.easemob.easeui.domain.EaseUser; import com.easemob.easeui.ui.EaseBaseActivity; import com.easemob.easeui.ui.EaseContactListFragment; import com.easemob.easeui.ui.EaseContactListFragment.EaseContactListItemClickListener; import com.easemob.easeui.ui.EaseConversationListFragment; import com.easemob.easeui.ui.EaseConversationListFragment.EaseConversationListItemClickListener; import com.easemob.easeui.utils.EaseCommonUtils; import com.easemob.easeuisimpledemo.R; public class MainActivity extends EaseBaseActivity{ private TextView unreadLabel; private Button[] mTabs; private EaseConversationListFragment conversationListFragment; private EaseContactListFragment contactListFragment; private SettingsFragment settingFragment; private Fragment[] fragments; private int index; private int currentTabIndex; Map<String, EaseUser> contactsMap = new HashMap<String, EaseUser>(); @Override protected void onCreate(Bundle arg0) { super.onCreate(arg0); setContentView(R.layout.activity_main); unreadLabel = (TextView) findViewById(R.id.unread_msg_number); mTabs = new Button[3]; mTabs[0] = (Button) findViewById(R.id.btn_conversation); mTabs[1] = (Button) findViewById(R.id.btn_address_list); mTabs[2] = (Button) findViewById(R.id.btn_setting); // 把第一个tab设为选中状态 mTabs[0].setSelected(true); conversationListFragment = new EaseConversationListFragment(); contactListFragment = new EaseContactListFragment(); settingFragment = new SettingsFragment(); contactListFragment.setContactsMap(getContacts()); contactsMap=getContacts(); conversationListFragment.setConversationListItemClickListener(new EaseConversationListItemClickListener() { @Override public void onListItemClicked(EMConversation conversation) { startActivity(new Intent(MainActivity.this, ChatActivity.class).putExtra(EaseConstant.EXTRA_USER_ID, conversation.getUserName())); } }); contactListFragment.setContactListItemClickListener(new EaseContactListItemClickListener() { @Override public void onListItemClicked(EaseUser user) { startActivity(new Intent(MainActivity.this, ChatActivity.class).putExtra(EaseConstant.EXTRA_USER_ID, user.getUsername())); } }); fragments = new Fragment[] { conversationListFragment, contactListFragment, settingFragment }; // 添加显示第一个fragment getSupportFragmentManager().beginTransaction().add(R.id.fragment_container, conversationListFragment) .add(R.id.fragment_container, contactListFragment).hide(contactListFragment).show(conversationListFragment) .commit(); EaseUI easeUI = EaseUI.getInstance(); //需要easeui库显示用户头像和昵称设置此provider easeUI.setUserProfileProvider(new EaseUI.EaseUserProfileProvider() { @Override public EaseUser getUser(String username) { if (contactsMap == null) { return null; } Iterator<Map.Entry<String, EaseUser>> iterator = contactsMap.entrySet().iterator(); while (iterator.hasNext()) { Map.Entry<String, EaseUser> entry = iterator.next(); //兼容以前的通讯录里的已有的数据显示,加上此判断,如果是新集成的可以去掉此判断 if (!entry.getKey().equals("item_new_friends") && !entry.getKey().equals("item_groups") && !entry.getKey().equals("item_chatroom") && !entry.getKey().equals("item_robots")) { if (entry.getKey().equals(username)) { //不显示黑名单中的用户 return entry.getValue(); } } } return null; } }); } /** * button点击事件 * * @param view */ public void onTabClicked(View view) { switch (view.getId()) { case R.id.btn_conversation: index = 0; break; case R.id.btn_address_list: index = 1; break; case R.id.btn_setting: index = 2; break; } if (currentTabIndex != index) { FragmentTransaction trx = getSupportFragmentManager().beginTransaction(); trx.hide(fragments[currentTabIndex]); if (!fragments[index].isAdded()) { trx.add(R.id.fragment_container, fragments[index]); } trx.show(fragments[index]).commit(); } mTabs[currentTabIndex].setSelected(false); // 把当前tab设为选中状态 mTabs[index].setSelected(true); currentTabIndex = index; } /** * 临时生成的数据,密码皆为123456,可以登录测试接发消息 * @return */ private Map<String, EaseUser> getContacts(){ Map<String, EaseUser> contacts = new HashMap<String, EaseUser>(); for(int i = 1; i <= 10; i++){ EaseUser user = new EaseUser("easeuitest" + i); contacts.put("easeuitest" + i, user); } EaseUser user = new EaseUser("xu"); user.setNick("xujianxiang"); user.setAvatar("http://happysports.jianxingquyundong.com/image/5,112347a89bf2"); contacts.put("xu", user); user = new EaseUser("shen"); user.setNick("shenxiaojuan"); user.setAvatar("http://happysports.jianxingquyundong.com/image/5,112347a89bf2"); contacts.put("shen", user); return contacts; } }
仅献给跟我一样的菜鸟,看了应该会懂,
15
评论

Android EaseUI 关于设置昵称、头像 android头像 环信_Android

Wxin 发表了文章 • 15065 次浏览 • 2016-02-18 19:43 • 来自相关话题

关于依赖easeui,设置头像、昵称问题
在调用EaseUI.getInstance().init初始化之后去设置用户信息提供者
//get easeui instance
EaseUI easeUI = EaseUI.getInstance();
//需要easeui库显示用户头像和昵称设置此provider
easeUI.setUserProfileProvider(new EaseUserProfileProvider() {
 
    @Override
    public EaseUser getUser(String username) {
       return getUserInfo(username);
    }
});

getUserInfo是自己实现的一个方法,在这个方法里去根据传入的username获取本地保存的对应的昵称、头像,设置给EaseUser的对象,并返回。

easeui里显示昵称、头像的时候会去调用EaseUserProfileProvider这个接口去获取EaseUser对象,会去执行在初始化之后设置的getUserInfo方法,如果没有显示昵称、头像,你就要去看getUserInfo里是否拿到昵称、头像设置给EaseUser对象了。

获取昵称、头像显示,我这里给大家两种方案,昵称、头像都保存在自己的服务器。

第一种
可以在登录之后去服务器获取所有好友的昵称、头像,包括自己的,保存在本地,getUserInfo方法里就去根据传入的username去本地获取,设置给EaseUser对象返回。

第二种
可以在getUserInfo方法里去判断本地是否有保存对应的昵称和头像,没有就发送网络请求去服务器获取对应的昵称头像保存到本地,设置给EaseUser对象返回 ,然后发送广播到聊天界面去提示刷新,刷新之后就会执行getUserInfo方法拿到本地的昵称、头像。

头像、昵称更新
用户请求你的服务器修改了昵称、头像,你的服务器去调用rest给这个用户的所有好友,发条透传消息,提示去更新本地保存的昵称、头像 查看全部
关于依赖easeui,设置头像、昵称问题
在调用EaseUI.getInstance().init初始化之后去设置用户信息提供者
//get easeui instance
EaseUI easeUI = EaseUI.getInstance();
//需要easeui库显示用户头像和昵称设置此provider
easeUI.setUserProfileProvider(new EaseUserProfileProvider() {
 
    @Override
    public EaseUser getUser(String username) {
       return getUserInfo(username);
    }
});

getUserInfo是自己实现的一个方法,在这个方法里去根据传入的username获取本地保存的对应的昵称、头像,设置给EaseUser的对象,并返回。

easeui里显示昵称、头像的时候会去调用EaseUserProfileProvider这个接口去获取EaseUser对象,会去执行在初始化之后设置的getUserInfo方法,如果没有显示昵称、头像,你就要去看getUserInfo里是否拿到昵称、头像设置给EaseUser对象了。

获取昵称、头像显示,我这里给大家两种方案,昵称、头像都保存在自己的服务器。

第一种
可以在登录之后去服务器获取所有好友的昵称、头像,包括自己的,保存在本地,getUserInfo方法里就去根据传入的username去本地获取,设置给EaseUser对象返回。

第二种
可以在getUserInfo方法里去判断本地是否有保存对应的昵称和头像,没有就发送网络请求去服务器获取对应的昵称头像保存到本地,设置给EaseUser对象返回 ,然后发送广播到聊天界面去提示刷新,刷新之后就会执行getUserInfo方法拿到本地的昵称、头像。

头像、昵称更新
用户请求你的服务器修改了昵称、头像,你的服务器去调用rest给这个用户的所有好友,发条透传消息,提示去更新本地保存的昵称、头像
3
评论

Android接收不到消息(普通消息,透传消息、离线消息)? 透传 环信_Android

zhuhy 发表了文章 • 6107 次浏览 • 2016-02-16 20:33 • 来自相关话题

普通消息收不到

    发送消息的EMCallBack的onSuccess方法被回调成功。我用后台查询所有聊天记录也能查到我客户端发送的消息,但是客户端却无法接收到发送的消息。------看下有注册接收消息的监听吗,你在onResume方法中加上注册接收消息的监听,EMChatManager.getInstance().registerEventListener(this,
                new EMNotifierEvent.Event { EMNotifierEvent.Event.EventNewMessage ,
                EMNotifierEvent.Event.EventOfflineMessage,
                EMNotifierEvent.Event.EventConversationListChanged});
如果我用环信后台发送测试消息,客户端却能正常接收-------看下发送消息是否单聊消息,将这句注释掉
//如果是群聊,设置chattype,默认是单聊 message.setChatType(ChatType.GroupChat);
发送消息有扩展消息的话,发送成功,接收不到的话,看下你发送的类型和接收类型对吗。发送的是整型的话,接收就是有整型接收,接收类型要一致。

透传消息收不到

    接收不到透传消息,首先看下消息是否发送成功,消息发送成功的话,接收不到透传消息,检查看下在注册完接收消息的监听后又加上这句吗
注:最后要通知sdk,UI 已经初始化完毕,注册了相应的receiver和listener, 可以接受broadcast了 EMChat.getInstance().setAppInited(); 离线透传消息也是走的普通透传消息的监听。

离线消息接收不到

    看下有注册离线消息监听吗EventOfflineMessage,退出程序的话或者进程不在的话,消息就接收不到了,android的离线消息保存在服务端,用户上线之后接收到。

    对于离线消息,CMD和普通的消息处理方式不太一样,CMD会被一条一条推送过来,而普通消息会在3秒左右推送一次,event data 是离线消息数组

    使用广播接收消息的话,在注册完广播监听之后,一定要加上这句 EMChat.getInstance().setAppInited();切换页面接收不到的话,看下设置的广播优先级,使用广播接收消息的话,普通消息和离线消息走的是同一个广播NewMessageBroadcastReceiver()。 查看全部
普通消息收不到

    发送消息的EMCallBack的onSuccess方法被回调成功。我用后台查询所有聊天记录也能查到我客户端发送的消息,但是客户端却无法接收到发送的消息。------看下有注册接收消息的监听吗,你在onResume方法中加上注册接收消息的监听,EMChatManager.getInstance().registerEventListener(this,
                new EMNotifierEvent.Event { EMNotifierEvent.Event.EventNewMessage ,
                EMNotifierEvent.Event.EventOfflineMessage,
                EMNotifierEvent.Event.EventConversationListChanged});
如果我用环信后台发送测试消息,客户端却能正常接收-------看下发送消息是否单聊消息,将这句注释掉
//如果是群聊,设置chattype,默认是单聊 message.setChatType(ChatType.GroupChat);
发送消息有扩展消息的话,发送成功,接收不到的话,看下你发送的类型和接收类型对吗。发送的是整型的话,接收就是有整型接收,接收类型要一致。

透传消息收不到

    接收不到透传消息,首先看下消息是否发送成功,消息发送成功的话,接收不到透传消息,检查看下在注册完接收消息的监听后又加上这句吗
注:最后要通知sdk,UI 已经初始化完毕,注册了相应的receiver和listener, 可以接受broadcast了 EMChat.getInstance().setAppInited(); 离线透传消息也是走的普通透传消息的监听。

离线消息接收不到

    看下有注册离线消息监听吗EventOfflineMessage,退出程序的话或者进程不在的话,消息就接收不到了,android的离线消息保存在服务端,用户上线之后接收到。

    对于离线消息,CMD和普通的消息处理方式不太一样,CMD会被一条一条推送过来,而普通消息会在3秒左右推送一次,event data 是离线消息数组

    使用广播接收消息的话,在注册完广播监听之后,一定要加上这句 EMChat.getInstance().setAppInited();切换页面接收不到的话,看下设置的广播优先级,使用广播接收消息的话,普通消息和离线消息走的是同一个广播NewMessageBroadcastReceiver()。
4
评论

关于Android在添加好友时邀请收不到的问题 环信_Android

王庆伟 发表了文章 • 4627 次浏览 • 2016-02-15 19:37 • 来自相关话题

    在我们集成环信的sdk时,经常会遇到这样一个问题,在我们添加好友时,邀请发出了但是那边却收不到的尴尬情况,针对这样的问题,系统的分析一下,这其中可能的原因:
 1. 首先我们要看看好友监听是否在application或MainActivity中注册,要保证在接收邀请时,监听处于监听状态,也就是没有被消毁和取消注册。
2. 检查监听注册是否正确,在监听的下方是否加了:EMChat.getInstance().setAppInited();
3. 打个断点看看,这个好友邀请的监听onContactInvited(String username,String reason)是否在执行(见Demo中DemoHelper),具体代码如下:public void onContactInvited(String username, String reason) {
// 接到邀请的消息,如果不处理(同意或拒绝),掉线后,服务器会自动再发过来,所以客户端不需要重复提醒
List<InviteMessage> msgs = inviteMessgeDao.getMessagesList();

for (InviteMessage inviteMessage : msgs) {
if (inviteMessage.getGroupId() == null && inviteMessage.getFrom().equals(username)) {
inviteMessgeDao.deleteMessage(username);
}
}
// 自己封装的javabean
InviteMessage msg = new InviteMessage();
msg.setFrom(username);
msg.setTime(System.currentTimeMillis());
msg.setReason(reason);
Log.d(TAG, username + "请求加你为好友,reason: " + reason);
// 设置相应status
msg.setStatus(InviteMesageStatus.BEINVITEED);
notifyNewIviteMessage(msg);
broadcastManager.sendBroadcast(new Intent(Constant.ACTION_CONTACT_CHANAGED));
}
 
   当然,类似的群组邀请收不到的问题也是类似的,具体排查思路和上面雷同,邀请监听的代码如下:/**
* 群组变动监听
*/
class MyGroupChangeListener implements EMGroupChangeListener {

@Override
public void onInvitationReceived(String groupId, String groupName, String inviter, String reason) {

boolean hasGroup = false;
for (EMGroup group : EMGroupManager.getInstance().getAllGroups()) {
if (group.getGroupId().equals(groupId)) {
hasGroup = true;
break;
}
}
if (!hasGroup)
return;

// 被邀请
String st3 = appContext.getString(R.string.Invite_you_to_join_a_group_chat);
EMMessage msg = EMMessage.createReceiveMessage(Type.TXT);
msg.setChatType(ChatType.GroupChat);
msg.setFrom(inviter);
msg.setTo(groupId);
msg.setMsgId(UUID.randomUUID().toString());
msg.addBody(new TextMessageBody(inviter + " " +st3));
// 保存邀请消息
EMChatManager.getInstance().saveMessage(msg);
// 提醒新消息
getNotifier().viberateAndPlayTone(msg);
//发送local广播
broadcastManager.sendBroadcast(new Intent(Constant.ACTION_GROUP_CHANAGED));
}

@Override
public void onInvitationAccpted(String groupId, String inviter, String reason) {
}
@Override
public void onInvitationDeclined(String groupId, String invitee, String reason) {
}

@Override
public void onUserRemoved(String groupId, String groupName) {
//TODO 提示用户被T了,demo省略此步骤
broadcastManager.sendBroadcast(new Intent(Constant.ACTION_GROUP_CHANAGED));
}

@Override
public void onGroupDestroy(String groupId, String groupName) {
// 群被解散
//TODO 提示用户群被解散,demo省略
broadcastManager.sendBroadcast(new Intent(Constant.ACTION_GROUP_CHANAGED));
}

@Override
public void onApplicationReceived(String groupId, String groupName, String applyer, String reason) {

// 用户申请加入群聊
InviteMessage msg = new InviteMessage();
msg.setFrom(applyer);
msg.setTime(System.currentTimeMillis());
msg.setGroupId(groupId);
msg.setGroupName(groupName);
msg.setReason(reason);
Log.d(TAG, applyer + " 申请加入群聊:" + groupName);
msg.setStatus(InviteMesageStatus.BEAPPLYED);
notifyNewIviteMessage(msg);
broadcastManager.sendBroadcast(new Intent(Constant.ACTION_GROUP_CHANAGED));
}

@Override
public void onApplicationAccept(String groupId, String groupName, String accepter) {

String st4 = appContext.getString(R.string.Agreed_to_your_group_chat_application);
// 加群申请被同意
EMMessage msg = EMMessage.createReceiveMessage(Type.TXT);
msg.setChatType(ChatType.GroupChat);
msg.setFrom(accepter);
msg.setTo(groupId);
msg.setMsgId(UUID.randomUUID().toString());
msg.addBody(new TextMessageBody(accepter + " " +st4));
// 保存同意消息
EMChatManager.getInstance().saveMessage(msg);
// 提醒新消息
getNotifier().viberateAndPlayTone(msg);
broadcastManager.sendBroadcast(new Intent(Constant.ACTION_GROUP_CHANAGED));
}

@Override
public void onApplicationDeclined(String groupId, String groupName, String decliner, String reason) {
// 加群申请被拒绝,demo未实现
}
}
  查看全部
    在我们集成环信的sdk时,经常会遇到这样一个问题,在我们添加好友时,邀请发出了但是那边却收不到的尴尬情况,针对这样的问题,系统的分析一下,这其中可能的原因:
 1. 首先我们要看看好友监听是否在application或MainActivity中注册,要保证在接收邀请时,监听处于监听状态,也就是没有被消毁和取消注册。
2. 检查监听注册是否正确,在监听的下方是否加了:EMChat.getInstance().setAppInited();
3. 打个断点看看,这个好友邀请的监听onContactInvited(String username,String reason)是否在执行(见Demo中DemoHelper),具体代码如下:
public void onContactInvited(String username, String reason) {
// 接到邀请的消息,如果不处理(同意或拒绝),掉线后,服务器会自动再发过来,所以客户端不需要重复提醒
List<InviteMessage> msgs = inviteMessgeDao.getMessagesList();

for (InviteMessage inviteMessage : msgs) {
if (inviteMessage.getGroupId() == null && inviteMessage.getFrom().equals(username)) {
inviteMessgeDao.deleteMessage(username);
}
}
// 自己封装的javabean
InviteMessage msg = new InviteMessage();
msg.setFrom(username);
msg.setTime(System.currentTimeMillis());
msg.setReason(reason);
Log.d(TAG, username + "请求加你为好友,reason: " + reason);
// 设置相应status
msg.setStatus(InviteMesageStatus.BEINVITEED);
notifyNewIviteMessage(msg);
broadcastManager.sendBroadcast(new Intent(Constant.ACTION_CONTACT_CHANAGED));
}

 
   当然,类似的群组邀请收不到的问题也是类似的,具体排查思路和上面雷同,邀请监听的代码如下:
/**
* 群组变动监听
*/
class MyGroupChangeListener implements EMGroupChangeListener {

@Override
public void onInvitationReceived(String groupId, String groupName, String inviter, String reason) {

boolean hasGroup = false;
for (EMGroup group : EMGroupManager.getInstance().getAllGroups()) {
if (group.getGroupId().equals(groupId)) {
hasGroup = true;
break;
}
}
if (!hasGroup)
return;

// 被邀请
String st3 = appContext.getString(R.string.Invite_you_to_join_a_group_chat);
EMMessage msg = EMMessage.createReceiveMessage(Type.TXT);
msg.setChatType(ChatType.GroupChat);
msg.setFrom(inviter);
msg.setTo(groupId);
msg.setMsgId(UUID.randomUUID().toString());
msg.addBody(new TextMessageBody(inviter + " " +st3));
// 保存邀请消息
EMChatManager.getInstance().saveMessage(msg);
// 提醒新消息
getNotifier().viberateAndPlayTone(msg);
//发送local广播
broadcastManager.sendBroadcast(new Intent(Constant.ACTION_GROUP_CHANAGED));
}

@Override
public void onInvitationAccpted(String groupId, String inviter, String reason) {
}
@Override
public void onInvitationDeclined(String groupId, String invitee, String reason) {
}

@Override
public void onUserRemoved(String groupId, String groupName) {
//TODO 提示用户被T了,demo省略此步骤
broadcastManager.sendBroadcast(new Intent(Constant.ACTION_GROUP_CHANAGED));
}

@Override
public void onGroupDestroy(String groupId, String groupName) {
// 群被解散
//TODO 提示用户群被解散,demo省略
broadcastManager.sendBroadcast(new Intent(Constant.ACTION_GROUP_CHANAGED));
}

@Override
public void onApplicationReceived(String groupId, String groupName, String applyer, String reason) {

// 用户申请加入群聊
InviteMessage msg = new InviteMessage();
msg.setFrom(applyer);
msg.setTime(System.currentTimeMillis());
msg.setGroupId(groupId);
msg.setGroupName(groupName);
msg.setReason(reason);
Log.d(TAG, applyer + " 申请加入群聊:" + groupName);
msg.setStatus(InviteMesageStatus.BEAPPLYED);
notifyNewIviteMessage(msg);
broadcastManager.sendBroadcast(new Intent(Constant.ACTION_GROUP_CHANAGED));
}

@Override
public void onApplicationAccept(String groupId, String groupName, String accepter) {

String st4 = appContext.getString(R.string.Agreed_to_your_group_chat_application);
// 加群申请被同意
EMMessage msg = EMMessage.createReceiveMessage(Type.TXT);
msg.setChatType(ChatType.GroupChat);
msg.setFrom(accepter);
msg.setTo(groupId);
msg.setMsgId(UUID.randomUUID().toString());
msg.addBody(new TextMessageBody(accepter + " " +st4));
// 保存同意消息
EMChatManager.getInstance().saveMessage(msg);
// 提醒新消息
getNotifier().viberateAndPlayTone(msg);
broadcastManager.sendBroadcast(new Intent(Constant.ACTION_GROUP_CHANAGED));
}

@Override
public void onApplicationDeclined(String groupId, String groupName, String decliner, String reason) {
// 加群申请被拒绝,demo未实现
}
}

 
0
评论

我调用了两次login,结果app打包出来报错。 环信_Android

环信专业服务 发表了文章 • 1651 次浏览 • 2016-01-27 00:00 • 来自相关话题

只建议调用一次login,在登陆时可以添加个是否已经登陆的判断,登录了就不必再次登陆。
只建议调用一次login,在登陆时可以添加个是否已经登陆的判断,登录了就不必再次登陆。
0
评论

接收不到透传,请问是什么原因? 透传 收不到推送 环信_Android

环信专业服务 发表了文章 • 2085 次浏览 • 2016-01-27 00:00 • 来自相关话题

如果普通消息能收到的话就要看EMChat.getInstance().setAppInited();添加了没。(只用调一次即可,建议放到主activity中)。
如果普通消息能收到的话就要看EMChat.getInstance().setAppInited();添加了没。(只用调一次即可,建议放到主activity中)。
2
评论

多个客户端登录同一个环信账号,前一个用户被踢,走了回调onConnectionConflict()方法,然后我去调用EMChat.getInstance().isLoggedIn();依然是true ,请问是什么原因呢? 环信_Android

环信专业服务 发表了文章 • 7512 次浏览 • 2016-01-27 00:00 • 来自相关话题

虽然走了onConnectionConflict()回调,有可能没做logout处理,这就比如一个设备登陆A账号后断网然后另一个设备再登录A账号,等原设备联网后还是会登录A账号。
虽然走了onConnectionConflict()回调,有可能没做logout处理,这就比如一个设备登陆A账号后断网然后另一个设备再登录A账号,等原设备联网后还是会登录A账号。
1
评论

你们的log日志在哪? 环信_Android

环信专业服务 发表了文章 • 1287 次浏览 • 2016-01-27 00:00 • 来自相关话题

/sdcard/Android/data/your_packet/日期/000.html。注意是html格式的。
/sdcard/Android/data/your_packet/日期/000.html。注意是html格式的。
0
评论

关于打包混淆有注意的吗? 环信_Android

环信专业服务 发表了文章 • 1576 次浏览 • 2016-01-27 00:00 • 来自相关话题

如果apk要打包混淆的话,要关闭debug模式。
如果apk要打包混淆的话,要关闭debug模式。
0
评论

请问下,环信发送图片那里是断点发送的吗?如果断开了,隔了一段时间,怎么重连? 重连 环信_Android

环信专业服务 发表了文章 • 1682 次浏览 • 2016-01-27 00:00 • 来自相关话题

图片发送不会断点续传,发送不成功超时后会出现一个叹号,点击之后会重新发送。
图片发送不会断点续传,发送不成功超时后会出现一个叹号,点击之后会重新发送。
0
评论

添加好友申请,接收方sdk有打印收到申请,监听收不到,同时打印这句话:received roster presence, but app is not ready,请问是什么原因? 好友申请 环信_Android

环信专业服务 发表了文章 • 1850 次浏览 • 2016-01-27 00:00 • 来自相关话题

这个是因为没有添加 EMChat.getInstance().setAppInited();
这个是因为没有添加 EMChat.getInstance().setAppInited();
0
评论

环信安卓demo清除缓存的功能在哪? 环信_Android

环信专业服务 发表了文章 • 2752 次浏览 • 2016-01-27 00:00 • 来自相关话题

没有只清除内存的方法,deleteConversation和clearConversation都会删除会话和本地db中的记录。不同的是clearConversation会在内存中保留会话对象。demo中调clearConversation清空后没有在会话列表显示出空会话,是因为对消息数为零的会话做了过滤。 查看全部
没有只清除内存的方法,deleteConversation和clearConversation都会删除会话和本地db中的记录。不同的是clearConversation会在内存中保留会话对象。demo中调clearConversation清空后没有在会话列表显示出空会话,是因为对消息数为零的会话做了过滤。
0
评论

好友列表的回调正要回来,这时我的网络断了,几天或者更长时间后,我重新连接上了,回调还会来吗? 环信_Android

环信专业服务 发表了文章 • 1510 次浏览 • 2016-01-27 00:00 • 来自相关话题

当再次连接到服务器,肯定会收到回调的。
当再次连接到服务器,肯定会收到回调的。
0
评论

我们接受不到消息了,但退出重登就会收到上次没收到的。这个可能是什么问题? 收不到推送 环信_Android

环信专业服务 发表了文章 • 2055 次浏览 • 2016-01-27 00:00 • 来自相关话题

一种情况可能你被踢了但没做登出处理,另一种情况可能在没调登出前多次调用登陆。
一种情况可能你被踢了但没做登出处理,另一种情况可能在没调登出前多次调用登陆。
2
评论

客户端到客户端的消息加密应该调什么API呢? api 环信_Android

环信专业服务 发表了文章 • 1920 次浏览 • 2016-01-27 00:00 • 来自相关话题

客户可以先把消息内容按照自己的算法加密之后再通过环信来发送,iOS的回调是EMChatManagerEncryptionDelegate.h;安卓是EncryptProvider,接口说明在http://www.easemob.com/apidoc/android/chat/ 查看全部
客户可以先把消息内容按照自己的算法加密之后再通过环信来发送,iOS的回调是EMChatManagerEncryptionDelegate.h;安卓是EncryptProvider,接口说明在http://www.easemob.com/apidoc/android/chat/
0
评论

用户客户端收到大量的透传消息和普通消息时,在透传消息的监听里面去创建消息去importmessage,然后会出现消息发送的回调走的onerror,但是对方已经收到了,这个会是什么原因导致的。 透传 透传消息 环信_Android

环信专业服务 发表了文章 • 1543 次浏览 • 2016-01-27 00:00 • 来自相关话题

在透传监听那块不可以调用importmessage,因为这里面有个notify的提醒会导致一些其他的问题,如果想保存的话可以调用saveMessage这个方法即可。
在透传监听那块不可以调用importmessage,因为这里面有个notify的提醒会导致一些其他的问题,如果想保存的话可以调用saveMessage这个方法即可。
0
评论

SDK默认是自动登陆的,我想改成手动登陆的可以吗? 环信_Android

环信专业服务 发表了文章 • 2819 次浏览 • 2016-01-27 00:00 • 来自相关话题

可以,只要调用EMChat.getInstance().setAutoLogin(false)放在SDK初始化的前边就行
可以,只要调用EMChat.getInstance().setAutoLogin(false)放在SDK初始化的前边就行