必威体育Betway必威体育官网
当前位置:首页 > IT技术

【安卓学习之互动直播】 腾讯云直播 2 - 获取直播列表/创建房间

时间:2019-09-07 22:39:59来源:IT技术作者:seo实验室小编阅读:69次「手机版」
 

腾讯 直播

█ 【安卓学习之互动直播腾讯云直播 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

相关阅读

淘宝美妆直播栏目靠谱吗?购买有什么技巧?

直播是现在非常火的一种销售方式,很多买家都喜欢通过边观看淘宝直播边下单购买,因为通过直播可以更直观的了解到商品的特性,有疑问也

亚运会LOL直播怎么看?中国电竞亚运会首金后能否再创辉

A5创业网(公众号:iadmin5)8月27日消息,在昨日晚间,中国队在雅加达亚运会电竞项目《王者荣耀国际版(AOV)》中夺冠。今日关注度更高的L

小米盒子怎么看电视直播?一招搞定看六百直播台

小编在小米盒子的贴吧、官方论坛里,看到不少新手用户在发帖询问,小米盒子怎么没有预装直播软件呢?其实这个不止小米,其他各大品牌也

小米盒子怎么看电视直播?

小编在小米盒子的贴吧、官方论坛里,看到不少新手用户在发帖询问,小米盒子怎么没有预装直播软件呢?其实这个不止小米,其他各大品牌也是

淘宝直播发预告标题技巧有哪些?

如果大家在做淘宝直播,应该都知道在直播开始前还有一个推广宣传的档期的,那就是操作发布淘宝直播预告,这个预告发布的成功与否也直接

分享到:

栏目导航

推荐阅读

热门阅读