阅读 167

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

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

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

                }

            }

        });

    }

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

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

            }

        }

    };

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

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

                //                 

            }

        }

    };

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

创建房间 - 直播接口 - 互动直播 - 文档平台 - 腾讯云

   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

————————————————

版权声明:本文为CSDN博主「笔夏」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/ljb568838953/article/details/81784431


文章分类
后端
版权声明:本站是系统测试站点,无实际运营。本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 XXXXXXo@163.com 举报,一经查实,本站将立刻删除。
相关推荐