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

本文介绍了如何在腾讯云直播中实现自定义消息的收发,主要使用腾讯云IM进行操作。通过创建群聊会话,构造并发送包含用户头像、姓名、礼物信息等的自定义JSON消息,确保了直播送礼环节的信息展示,并考虑了与iOS端的兼容性问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

写在前面

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

云直播的自定义消息收发,不得不说的点就是 腾讯云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) {//发送消息成功

//发送消息成功了,自己再做业务逻辑的处理

}

});

一: 使用javacv来实现,最终也是用过ffmpeg来进行编码和推流,javacv实现到可以直接接收摄像头的帧数据 需要自己实现的代码只是打开摄像头,写一个SurfaceView进行预览,然后实现PreviewCallback将摄像头每一帧的数据交给javacv即可 javacv地址:https://github.com/bytedeco/javacv demo地址:https://github.com/beautifulSoup/RtmpRecoder/tree/master 二: 使用Android自带的编码工具,可实现硬编码,这里有一个国内大神开源的封装很完善的的库yasea,第一种方法需要实现的Camera采集部分也一起封装好了,进行一些简单配置就可以实现编码推流,并且yasea目前已经直接支持摄像头的热切换,和各种滤镜效果 yasea地址(内置demo):https://github.com/begeekmyfriend/yasea 服务器 流媒体服务器我用的是srs,项目地址:https://github.com/ossrs/srs 关于srs的编译、配置、部署、在官方wiki中已经写的很详细了,并且srs同样是国内开发人员开源的项目,有全中文的文档,看起来很方便 这里有最基本的简单编译部署过程 Android直播实现(二)srs流媒体服务器部署 播放器 android端的播放使用vitamio,还是国内的开源播放器,是不是感觉国内的前辈们越来越屌了^~^! vitamio支持几乎所有常见的的视频格式和流媒体协议 vitamio地址(内置demo):https://github.com/yixia/VitamioBundle 这里使用的是yaesa库,先介绍一下直播实现的流程:
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值