怎么使用融云IM的im推送服务器功能,融云im推送服务器API

融云如何支持视频消息的功能
融云正式的视频消息还在开发当中 目前 IMLib 完全可以自行开发 , IMKit 也可以通过如下的方式进行视频消息的发送
public void sendVideoMessage(String firstImgPath,final String videoPath, Conversation.ConversationType mConversationType,String targetId) {
if (TextUtils.isEmpty(firstImgPath)) {
new RuntimeException(“firstImgPath is null”);
File f = new File(firstImgPath);
if (!f.exists()) {
new RuntimeException(“image file is null”);
if (TextUtils.isEmpty(videoPath)) {
new RuntimeException(“videoPath is null”);
if (mConversationType == null) {
new RuntimeException(“ConversationType is null”);
if (TextUtils.isEmpty(targetId)) {
new RuntimeException(“targetId is null”);
ImageMessage imageMessage = ImageMessage.obtain(Uri.parse(“file://” + firstImgPath), Uri.parse(“file://” + firstImgPath));
io.rong.imlib.model.Message message = io.rong.imlib.model.Message.obtain(targetId, mConversationType, imageMessage);
RongIM.getInstance().getRongIMClient().sendImageMessage(message, null, null, new RongIMClient.SendImageMessageWithUploadListenerCallback() {
public void onAttached(final io.rong.imlib.model.Message message, final RongIMClient.uploadImageStatusListener watcher) {
message.setSentStatus(Message.SentStatus.SENDING);
RongIMClient.getInstance().setMessageSentStatus(message.getMessageId(), message.getSentStatus());
Runnable runnable = new Runnable() {
public void run() {
ImageMessage img = (ImageMessage) message.getContent();
img.setLocalUri(Uri.parse((videoPath)));
io.rong.imlib.model.Message msg = io.rong.imlib.model.Message.obtain(message.getTargetId(), message.getConversationType(), img);
RongIMClient.getInstance().uploadMedia(msg, new RongIMClient.UploadMediaCallback() {
public void onProgress(io.rong.imlib.model.Message message, int progress) {
watcher.update(progress);
public void onError(io.rong.imlib.model.Message message, RongIMClient.ErrorCode errorCode) {
watcher.error();
public void onSuccess(io.rong.imlib.model.Message message) {
watcher.success();
new Handler().post(runnable);
public void onError(io.rong.imlib.model.Message message, RongIMClient.ErrorCode code) {
public void onSuccess(io.rong.imlib.model.Message message) {
message.setSentStatus(Message.SentStatus.SENT);
RongIMClient.getInstance().setMessageSentStatus(message.getMessageId(), message.getSentStatus());
public void onProgress(io.rong.imlib.model.Message message, int progress) {
对上面这段代码做下讲解 : 上面的代码片段已经封装好了一个完整的 可以直接发送视频的方法 只要你是集成的 融云 2.26+ 以上的版本 你就可以把上面的代码 copy 过去直接用了 注意 cpoy 过去需要自己处理一下包名
然后我们看看 四个参数 : 会话类型 和 id 就不用多解释了 这个来确定你需要像谁发这个消息 , fristImgPath 这个参数就是视频的 第一帧的图 这个是个 file:/// 的本地路径
因为最终消息是需要在会话界面上做展示 然后你看到的第一帧的图片点击以后 开始下载播放视频
videoPath 也是一个本地的 视频路径 下面我们来看一下具体用法:
通过上图可见 我已经准备好了一个 测试的 videotest.mp4 视频文件
MediaMetadataRetriever mmr = new MediaMetadataRetriever();
mmr.setDataSource(“/storage/sdcard1/DCIM/Camera/videotest.mp4″);
Bitmap bitmap = mmr.getFrameAtTime();
String firstPath = saveMyBitmap(“firstImagePath”,bitmap);
RongIM.getInstance().sendVideoMessage(firstPath,“file:///storage/sdcard1/DCIM/Camera/videotest.mp4″, Conversation.ConversationType.PRIVATE,&#″);
String[] versionInfo = getVersionInfo();
mCurrentVersion.setText(versionInfo[1]);
public String saveMyBitmap(String bitName,Bitmap mBitmap){
File f = new File(“/storage/sdcard1/DCIM/Camera/” + bitName + “.png”);
f.createNewFile();
} catch (IOException e) {
FileOutputStream fOut = null;
fOut = new FileOutputStream(f);
} catch (FileNotFoundException e) {
e.printStackTrace();
pressFormat.PNG, 100, fOut);
fOut.flush();
} catch (IOException e) {
e.printStackTrace();
fOut.close();
} catch (IOException e) {
e.printStackTrace();
return “/storage/sdcard1/DCIM/Camera/” + bitName + “.png”;
通过上面代码 您可以看到 我先获取本地的 视频文件路径 然后通过 Android 的 Media 获取到了视频的第一帧的 bitmap 然后通过 saveMyBitmap() 方法 将bitmap 转换为保存为本地 路径 并且返回 uri 给我 这样先获取到了第一帧的参数
视频的 路径我们已经有的 然后就可以直接对某个用户做发送了
当我先调用获取第一帧的方法 我们先看看 手机内到底生成了那张图片没有
目前可以根据上图看到
第一帧 在调用过方法后 已经生成
1.97MB 有点大 这么是测试 所以没有进行压缩 有需要的开发者在这里可以自行进行压缩
路径 和 文件名也和我们上面代码中的相吻合
下面我们来看一下 视频第一帧展示在界面上 并且视频上传的进度展示 由于此处进度最好需要视频来展示 这边笔者截取了好几帧的发送过程给大家做展示
可以从上图看到 视频在界面上首先展示了第一帧的 图片 然后上传视频的 进度也一直在刷
35% 74% 88%
到最后发送完成的图片在下面
到此时这个视频消息已经发送完成 视频已经通过融云的 uploadMidea 上传到了 七牛的存储上 变成了一个 RetomeUri 远程路径 接收端也是一样的道理 可以在接收消息的监听里面获取到 这个 ImageMessage (此处完善后应该是 VideoMessage) 两者效果一样都是 调用 uploadMidea 向云上做存储 , 接收端再消息体里面获取到这个 RetomeUri 就可以根据这个 RetomeUri 然后调用 downloadMidea (此方法是向七牛去下载这个视频) 下载到接收端 然后自行做处理
注意:uploadMidea
downloadMidea 是融云提供的上传下载方法
此处你可以上传到自己的服务端做存储
另外需要注意的是 在 sendVideoMessage() 方法内 也有 上传进度的回调 我们使用了这个进度 然后也可以看到上面图片上 有视频上传的进度浏览器过旧
很抱歉!您正在使用的浏览器版本过低,无法正常使用我们的网站,请升级后再试!
为获得最佳的浏览体验,建议您升级或选用其他浏览器,
我们列出了一些最受欢迎的浏览器供您升级,点击图标跳转到相应下载页:Grey,我们现在用的聊天功能就是集成的融云 IM SDK?
是的,Michelle
那咱们近期 App 的数据反响如何?
用户活跃度明显提高,就等着在 App Store 排行榜上攀升啦
太好了,没遇到什么技术问题吧?
放心吧 Michelle , 不用担心,融云非常专业,技术超群,服务也超棒!
Grey,我们现在用的聊天功能就是集成的融云 IM SDK?
是的,Michelle
那咱们近期 App 的数据反响如何?
用户活跃度明显提高,就等着在 App Store 排行榜上攀升啦
太好了,没遇到什么技术问题吧?
放心吧 Michelle , 不用担心,融云非常专业,技术超群,服务也超棒!
功能丰富,服务贴心
单聊,群聊,讨论组,支持图片
语音、地理位置,自定义消息
支持所有 IM 场景
无人数上限的聊天室,配合专业
级安全审核,完美支持视频直播
推送 / 短信
专业的消息通道,帮你精准及时
推送,提升用户活跃度和留存率
专业多客服平台,用精湛的移动端
技术,把精心选择的客服 SaaS
产品提供给你
音视频通讯
支持一对一、多人音视频电话,视
频直播点播。各种场景,应有尽有
全平台 / 多端同步
Android,iOS,Web 多端消息精
确同步。全平台支持
功能丰富,服务贴心
多活数据中心,异地数据备份,为你带来不间断的消息服务。
不限制用户数量,不限制消息并发量,不限制存储空间。
全球多节点
全球多节点服务,为你提供各大洲稳定的海外链路支持。
私有二进制通讯协议,数据全程加密,安全可靠。
无状态服务集群,服务、数据、网络均可动态伸缩,无限扩展。
场景化通讯,来自全球开发者的实践故事
优信二手车
借助融云,优信二手车实现了在线聊天功能
让二手车买卖掌上聊
借助融云实现学员交流打造综合学车平台
驾考宝典已经帮助 2.5 亿学员拿到驾照
豆果美食联手融云打造移动电商客服
加速行业飞跃
融云助力沪江网校打造在线学习移动课堂
为亿万用户提供在线教育服务
最火热的短视频社交应用 Faceu
借助融云实现聊天功能
融云助力百姓网实现私信功能
用户可通过多设备在百姓网进行全平台交流
新浪二手房
融云助力新浪二手房打造匿名聊天功能
保护隐私免受电话骚扰
国内领先的原创游戏视频分享社区
爱拍原创借力融云让玩家之间实时 Hi 聊
优信二手车
新浪二手房
为 App 加入聊天,不只是增加一个功能,更是一种互联网态度
小小的尝试,大大的改变
数据来源:权威研究机构 iResearch 艾瑞
2015 日均用户支持量 融云市场排名NO.1
艾瑞《 2015 年 IM 云服务行业发展白皮书 》
2016 日均用户支持量 融云市场排名NO.1
艾瑞《 2016 年 IM 云服务行业发展白皮书 》
400 - 969 - 6266
商务市场合作
技术支持邮箱
微信号:rong-io
Copyright 2016 RongCloud
京公网安备 39

我要回帖

更多关于 im消息推送 的文章

 

随机推荐