Android观看页SDK

优质
小牛编辑
132浏览
2023-12-01

Android 直播观看端 sdk

概述

MudutvPage 是基于 Android 平台的观看端 SDK,已继承视觉界面。通过简易配置就能直接观看直播,并进行互动。
目前观看页主要功能包含直播观看,聊天互动,点赞,打赏,投票,问卷,竞答红包,红包雨,普通红包等,自定义菜单功能菜单分类包含图文,视频。

阅读对象

本文档面向所有使用该 SDK 的开发人员、测试人员以及对此感兴趣的用户。

开发准备

设备和系统版本

android 4.0.3及以上 手机芯片要求 armv7 或 armv8 架构

开发环境配置

本 SDK 开发环境为 JAVA1.7 | ANDROID SDK API LEVEL 15

依赖说明

  • libs:观看端 aar 文件。

快速开发


开发步骤

1、需要在安卓应用程序中,声明以下权限:

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

2、将 mudutvpage.aar 放入 app/libs 包,在 build.gradle 加入

implementation fileTree(include: ['mudutvpage.aar'], dir: 'libs')

//数据库框架
def room_version = "2.2.6"
implementation "androidx.room:room-runtime:$room_version"
annotationProcessor "androidx.room:room-compiler:$room_version"

3、设置用户信息 绑定第三方账号方可使用投票功能,绑定的第三方账号为微信时方可展示现金红包类型。

//普通用户
private MuduUserEntity getUser() {
    MuduUserEntity user = new MuduUserEntity();
    user.setName("测试用户1");
    user.setAvatarUrl("https://www.xnip.cn/wp-content/uploads/2021/docimg28/53-abe1im5rkhs.png");
    return user;
}
//绑定第三方账号
private MuduUserEntity getUser() {
    MuduUserEntity user = new MuduUserEntity();
    user.setName("测试用户1");
    user.setAvatarUrl("https://www.xnip.cn/wp-content/uploads/2021/docimg28/53-abe1im5rkhs.png");
    user.setPhone("13511111111");
    user.setOpenId("f424fbd5c7e249f18390852c40a7e4vv");
    user.setThirdLoginType(MuduUserEntity.TYPE_QQ);
    return user;
}

4、进入直播频道

//activityId:频道 hashId
//liveType:频道类型 LiveStartHelper.TYPE_HORIZONTAL横屏;LiveStartHelper.TYPE_VERTICAL竖屏
//user:用户信息
LiveStartHelper.liveStart(Context context, String activityId, int liveType, MuduUserEntity user);

5、注册事件监听

MuduCallbackHelper.addListener(IMuduListener muduListener);

6、注销事件监听

MuduCallbackHelper.removeListener();

DEMO 示例

下面给出了部分重要的 Demo 中调用 SDK 的代码。

监听事件
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    //注册监听
    MuduCallbackHelper.addListener(muduListener);
}

private IMuduListener muduListener = new IMuduListener() {
    @Override
    public void onRewardPay(MuduRewardPayEntity payEntity) {
        //TODO 打赏支付回调:调用支付
    }

    @Override
    public void onClickCommodity(MuduCommodityEntity commodity) {
        //TODO 商品跳转回调:通过 webview 打开链接
    }

    @Override
    public void onRichTextUrl(String url) {
        //TODO 图文链接回调:通过 webview 打开链接
    }
};

@Override
protected void onDestroy() {
    super.onDestroy();
    //注销监听
    MuduCallbackHelper.removeListener();
}
上报打赏信息(服务端调用)

POST https://mudu.tv/donate/api/v1/activity/{activityId}/donate

通过自有支付体系完成支付后,调用该接口上报打赏信息。

Header

参数
Content-Typeapplication/json
CookieMuduRewardPayEntity.cookie

请求参数

参数类型是否必填备注来源
typeint1.现金 2.道具MuduRewardPayEntity.type
trade_idString交易流水ID支付生成的流水
donate_idint打赏配置IDMuduRewardPayEntity.donateId
user_idint用户IDMuduRewardPayEntity.userId
user_nameString用户名称MuduRewardPayEntity.userName
avatarString用户头像MuduRewardPayEntity.avatar
user_tokenString用户TokenMuduRewardPayEntity.userToken
gift_idint道具IDMuduRewardPayEntity.giftId
numint打赏数量MuduRewardPayEntity.num
moneyint总金额(单位:分)MuduRewardPayEntity.money
phoneString用户手机号MuduRewardPayEntity.phone

请求示例

  • 道具打赏
{
    "order": {
        "type": 2,
        "trade_id": "07683173079973709805",
        "donate_id": 1711,
        "gift_id": 56035,
        "user_id": 4699065,
        "user_name": "测试用户1",
        "avatar": "https://www.xnip.cn/wp-content/uploads/2021/docimg28/53-abe1im5rkhs.png",
        "user_token": "fadaeab8-d177-478b-9ebb-72196200a2e1",
        "num": 1,
        "money": 1,
        "phone": "13511111111"
    }
}
  • 现金打赏
{
    "order": {
        "type": 1,
        "trade_id": "34560408482804788487",
        "donate_id": 1711,
        "gift_id": 0,
        "user_id": 4699065,
        "user_name": "测试用户1",
        "avatar": "https://www.xnip.cn/wp-content/uploads/2021/docimg28/53-abe1im5rkhs.png",
        "user_token": "fadaeab8-d177-478b-9ebb-72196200a2e1",
        "num": 1,
        "money": 100,
        "phone": "13511111111"
    }
}

返回示例

{
    "errcode": 1000,
    "msg": "成功"
}

添加混淆

在proguard-rules.pro文件下添加如下代码:

-keep class com.mudu.**{*;}
-dontwarn com.mudu.**

-keep class com.yagu.**{*;}
-dontwarn com.yagu.**

-keep class tv.danmaku.**{*;}
-dontwarn tv.danmaku.**

demo和sdk下载

最新版本(v1.0.162304707)
更新说明:
包含直播观看,聊天互动,点赞,打赏,投票,问卷,竞答红包,红包雨,普通红包等,自定义菜单功能菜单分类包含图文,视频。

日期:2021年6月7日 下载android SDK以及Demo