Android 腾讯云直播 自定义消息收发

写在前面

              最近呢,在做腾讯云直播,也已经实现功能啦,现在就开始总结一下,腾讯云直播的自定义消息收发.

云直播的自定义消息收发,不得不说的点就是 腾讯云IM,做过腾讯云IM的都知道 消息总体分为以下几种

(1)文本消息

(2)图片消息

(3)视频消息

(4)语音消息

(5)自定义消息

 

我们,今天主讲,自定义消息,它可以是 图片(多张)+文字(多字段)+..........

 

1.需求

         博主,用自定义消息 是在直播送礼物,这个环节用到的 其中有 本人的头像+ 本人的姓名 + 礼物图片 + 礼物的名字 + 数量 +暗号(暗号可以理解为,我要让主播端更方便的接收这段自定义消息,属于一个标记)

也因为,送礼物是需要让直播间里,所有的人都看到,所以,他是群组消息. 来,上代码

2.获取群聊会话

private TIMConversation timConversation;
timConversation = TIMManager.getInstance().getConversation(
        TIMConversationType.Group,      //会话类型:群组
        "当前群组的id");

3.构造一条消息

TIMMessage msg = new TIMMessage();

4.JSONObject发送这条自定义消息(也可以使用别的,这里需要和IOS开发沟通好,避免,Android端向IOS端发送自定义消息,IOS接收不到的情况),这里还是按我的代码来,您可以改为别的什么,我的结构为本人的头像+ 本人的姓名 + 礼物图片 + 礼物的名字 + 数量 +暗号

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();
}

5.向TIMMessage中添加自定义内容

TIMCustomElem elem = new TIMCustomElem();
elem.setData(jsonObject1.toString().getBytes());      //自定义 byte[]
//将 elem 添加到消息
if (msg.addElement(elem) != 0) {	
    return;
}

6.发送自定义消息

timConversation.sendMessage(msg, new TIMValueCallBack() {//发送消息回调
    @Override
    public void onError(int code, String desc) {//发送消息失败
	//因为种种原因发送失败了
        //打印code 和desc信息,再去平台查看,是甚麽错误就可以了
    }

    @Override
    public void onSuccess(TIMMessage msg) {//发送消息成功
	//发送消息成功了,自己再做业务逻辑的处理        
    }
});

 

 
 

 

 

 

你可能感兴趣的:(Android)