腾讯 直播
█ 【安卓学习之互动直播】 腾讯云直播 2 - 获取直播列表/创建房间
█ 相关文章:
● 【安卓学习之互动直播】 腾讯云直播 1 - 注册/登录/个人信息
● 【安卓学习之互动直播】 腾讯云直播 2 - 获取直播列表/创建房间
█ 读前说明:
● 本文通过学习别人写demo,学习相关知识,如果涉及侵权请告知
● 本文只简单罗列相关的代码实现过程
● 涉及到的逻辑以及说明也只是简单介绍,主要当做笔记,了解过程而已
● 目前腾讯云互动直播在 GitHub 上提供了两个示例:
随心播 演示了包括界面和后台交互的完整的直播流程。
简单直播 最简单的互动直播示例,演示了最关键的几个接口的调用。
● 随心播客户端刷不出直播列表? - 问答 - 云+社区 - 腾讯云
█ 直播流程示例:
● 实际上还缺少了直播列表等信息,这些需要自己搭建服务器来实现
█ 网络通信:
● 这里使用的是目前最流行的第三方库okhttp(目前已经集成到Android系统中了)
● OkHttp的通信代码
public void request(String url) {
Okhttpclient okClient = new OkHttpClient();
final Request request = new Request.builder()
.url(url).build();
okClient.newCall(request).enqueue(new Callback() {
@Override
public void onFailure(Call call, IOException e) {
// 网络异常,比如手机没网络(java.net.UnknownHostException )
message msg = uihandler.obtainMessage(WHAT_FAIL);
msg.arg1 = -1;
msg.obj = e.toString();
uiHandler.sendMessage(msg);
}
@Override
public void onresponse(Call call, Response response) throws IOException {
//不是UI线程
if (response.isSuccessful()) {
// 通信成功
Message msg = uiHandler.obtainMessage(WHAT_SUCC);
msg.obj = response.body().string();
uiHandler.sendMessage(msg);
} else {
// 服务器异常,比如服务器没启动
Message msg = uiHandler.obtainMessage(WHAT_FAIL);
msg.arg1 = response.code();
msg.obj = "服务器异常";
uiHandler.sendMessage(msg);
}
}
});
}
PS1:okClient请求后的返回数据不在UI线程,所以需要通过uiHandler将数据传递到UI线程,再在界面上面显示
PS2:非UI线程不能进行UI控件操作
● 直播列表的获取接口:
- 请求的Get拼接URL的后缀:……?action=getList
- uiHandler 的定义:
private Handler uiHandler = new Handler(Looper.getMainLooper()) {
@Override
public void handleMessage(Message msg) {
int what = msg.what;
if (what == WHAT_FAIL) {
// 通信失败
toast.maketext(this, "请求列表失败:" + msg, Toast.LENGTH_SHORT).show();
mRefreshlayout.setRefreshing(false);
} else if (what == WHAT_SUCC) {
// 通信成功
// 对(String) msg.obj这个数据解析,得到直播列表List<-RoomInfo> roomInfos
mLiveListAdapter.removeAllRoomInfos();//下拉刷新,先移除掉之前的room信息
mLiveListAdapter.addRoomInfos(roomInfos);//再添加新的信息
mRefreshLayout.setRefreshing(false);
}
}
};
PS:正常服务器返回的是json格式的字符串,可以通过gson或者fastJson进行解析,转成对象集合 List<-RoomInfo>
● 创建房间的获取接口:
- 请求的Get拼接URL的后缀:……?action=create &userId=%s &userAvatar=%s &userName=%s &livetitle=%s &liveCover=%s
- uiHandler 的定义:
private Handler uiHandler = new Handler(Looper.getMainLooper()) {
@Override
public void handleMessage(Message msg) {
int what = msg.what;
if (what == WHAT_FAIL) {
// 通信失败
Toast.makeText(this, "请求失败:" + msg, Toast.LENGTH_SHORT).show();
} else if (what == WHAT_SUCC) {
// 通信成功
// 对(String) msg.obj这个数据解析,得到RoomInfo roomInfos信息,其中roomId是服务器后台分配的
Toast.makeText(this, "请求成功:" + roomInfo.roomId, Toast.LENGTH_SHORT).show();
//
}
}
};
创建房间 - 直播接口 - 互动直播 - 文档平台 - 腾讯云
PS1:以上文档可以看出创建房间,其实指需要对应的房间ID(房间唯一标识)roomId(建议由业务方后台统一分配)
PS2:为了展示界面的完整性,所以在创建房间时,顺便加入了主播ID(userId)、主播昵称(userAvatar)、主播名称(userName)、主播主题(liveTitle)、主播封面(liveCover)等信息
PS3:创建房间成功后,服务器后台分配房间ID号(roomId),这样加上观看人数(watcherNums)就凑成全部的房间信息了
█ 相关资料:
● 1.2018年02月11日 腾讯im及时登录注册 - 隔壁老张头的小窝 - CSDN博客
● 2.云通信 - 文档平台 - 腾讯云
● 3.下载代码 - 互动直播 - 文档平台 - 腾讯云(文档平台 ->互动直播 ->IE 浏览器集成 ->下载代码)
● 4.下载代码 - 互动直播 - 文档平台 - 腾讯云(文档平台 ->互动直播 ->Android 端集成 ->下载代码)
转载请注明出处:
https://blog.csdn.net/ljb568838953/article/details/81591807
相关阅读
直播是现在非常火的一种销售方式,很多买家都喜欢通过边观看淘宝直播边下单购买,因为通过直播可以更直观的了解到商品的特性,有疑问也
A5创业网(公众号:iadmin5)8月27日消息,在昨日晚间,中国队在雅加达亚运会电竞项目《王者荣耀国际版(AOV)》中夺冠。今日关注度更高的L
小编在小米盒子的贴吧、官方论坛里,看到不少新手用户在发帖询问,小米盒子怎么没有预装直播软件呢?其实这个不止小米,其他各大品牌也
小编在小米盒子的贴吧、官方论坛里,看到不少新手用户在发帖询问,小米盒子怎么没有预装直播软件呢?其实这个不止小米,其他各大品牌也是
如果大家在做淘宝直播,应该都知道在直播开始前还有一个推广宣传的档期的,那就是操作发布淘宝直播预告,这个预告发布的成功与否也直接