写在前面
最近呢,在做腾讯云直播,也已经实现功能啦,现在就开始总结一下,腾讯云直播的自定义消息收发.
云直播的自定义消息收发,不得不说的点就是 腾讯云IM,做过腾讯云IM的都知道 消息总体分为以下几种
(1)文本消息
(2)图片消息
(3)视频消息
(4)语音消息
(5)自定义消息
我们,今天主讲,自定义消息,它可以是 图片(多张)+文字(多字段)+..........
博主,用自定义消息 是在直播送礼物,这个环节用到的 其中有 本人的头像+ 本人的姓名 + 礼物图片 + 礼物的名字 + 数量 +暗号(暗号可以理解为,我要让主播端更方便的接收这段自定义消息,属于一个标记)
也因为,送礼物是需要让直播间里,所有的人都看到,所以,他是群组消息. 来,上代码
private TIMConversation timConversation;
timConversation = TIMManager.getInstance().getConversation(
TIMConversationType.Group, //会话类型:群组
"当前群组的id");
TIMMessage msg = new TIMMessage();
JSONObject jsonObject = new JSONObject();
JSONObject jsonObject1 = new JSONObject();
try {
jsonObject.put("number", tvNumer.getText().toString()); //礼物的数量
jsonObject.put("nickName", PreferenceUtil.getMyName());
jsonObject.put("index", position); //礼物的下标
jsonObject.put("headPic", headPortrait); //我的头像(送礼物人的头像)
jsonObject.put("acceptName", anchorName); //主播的名字
jsonObject1.put("cmd", "CustomRresentMsg"); //暗号
jsonObject1.put("data", jsonObject); //包裹之前的jsonObject
} catch (JSONException e) {
e.printStackTrace();
}
TIMCustomElem elem = new TIMCustomElem();
elem.setData(jsonObject1.toString().getBytes()); //自定义 byte[]
//将 elem 添加到消息
if (msg.addElement(elem) != 0) {
return;
}
timConversation.sendMessage(msg, new TIMValueCallBack() {//发送消息回调
@Override
public void onError(int code, String desc) {//发送消息失败
//因为种种原因发送失败了
//打印code 和desc信息,再去平台查看,是甚麽错误就可以了
}
@Override
public void onSuccess(TIMMessage msg) {//发送消息成功
//发送消息成功了,自己再做业务逻辑的处理
}
});