iOS 直播观看端 SDK
概述
MudutvPageDemo 是基于 iOS 平台的观看端SDK,已继承视觉界面。通过简易配置就能直接观看直播,并进行互动。
目前观看页主要功能包含直播观看,聊天互动,点赞,打赏,投票,问卷,竞答红包,红包雨,普通红包等,自定义菜单功能菜单分类包含图文,视频。
阅读对象
本文档面向所有使用该 SDK 的开发人员、测试人员以及对此感兴趣的用户。
开发准备
设备和系统版本
iOS 9.0及以上 手机芯片要求 arm64 架构
开发环境配置
本 SDK 开发环境为 Xcode 10+
依赖说明
1、 framework: MudutvPageSDK.framework
2、 dyldb:
libbz2.1.0.tbd 
libc.tbd
libc++.tbd
libz.tbd
快速集成SDK
开发步骤
一、需要在Info.plist中,添加权限: Allow Arbitrary Loads
二、在APP中引入MudutvPageSDK.framework并在Target中设置配置:
1.Build Setting  - Enable Bitcode - 设置 NO
2.Build Setting  - Other Links Flags - 添加-ObjC
3.General - Frameworks -选中MudutvPageSDK.framework - 设置Embed & sign
4.Build Phases - Embed Frameworks - 设置MudutvPageSDK.framework的Destination为Resources  
三、设置用户信息
绑定第三方账号方可使用投票功能,绑定的第三方账号为微信时方可展示现金红包类型。
//普通用户
{
    MDTVPUser *user = [MDTVPUser new];
    user.nick = @"测试用户";
    user.avatar = @"http://mudu.tv/assets/img/activity/pc/logo.png";
    user.type = PlatformType_Anonymous;
}
//绑定第三方账号
{
    MDTVPUser *user = [MDTVPUser new];
    user.nick = @"测试用户";
    user.avatar = @"http://mudu.tv/assets/img/activity/pc/logo.png";
    user.type = PlatformType_Weixin;
    user.phone = @"xxxxx";
    user.openId = @"xxxxx";
}
四、进入直播频道
//vc :依赖的父试图控制器
//channelId:频道 hashId
//liveType:频道类型 LiveType_Normal横屏;LiveType_Vertical竖屏
//user:用户信息
MDTVPPlayRoom *playRoom = [[MDTVPPlayRoom alloc] init];
[playRoom startLive:self withChannelId:activityId withLiveType:liveType withUser:user];
五、注册事件监听
//商品管理监听
[[MDTVPCommodityHandler instance] setTarget:self];
//加载网页监听
[[MDTVPWebHandler instance] setTarget:self];
//支付监听
[[MDTVPPayHandler instance] addTarget:self];
六、注销事件监听
//取消支付监听
[[MDTVPPayHandler instance] removeTarget];
DEMO 示例
下面给出了部分重要的 Demo 中调用 SDK 的代码。
监听事件
-(void)md_HandlePay:(MDTVPDonatePayGift *)gift
{
    //TODO:需要实现支付
}
-(void)md_HandleWebRedirect:(NSURLRequest *)urlRequest
{
    //TODO:需要实现自定义网页加载
}
-(void)md_HandleCommodityClick:(MDTVPCommodity *)commodity
{
    //TODO:需要实现自定义商品点击
}
上报打赏信息(服务端调用)
POST https://mudu.tv/donate/api/v1/activity/{activityId}/donate
通过自有支付体系完成支付后,调用该接口上报打赏信息。
Header
| 参数 | 值 | |
|---|---|---|
| Content-Type | application/json | |
| Cookie | MuduRewardPayEntity.cookie | 
请求参数
| 参数 | 类型 | 是否必填 | 备注 | 来源 | 
|---|---|---|---|---|
| type | int | 是 | 1.现金 2.道具 | MDTVPDonatePayGift.type | 
| trade_id | String | 是 | 交易流水ID | MDTVPDonatePayGift.tradeId | 
| donate_id | int | 是 | 打赏配置ID | MDTVPDonatePayGift.donateId | 
| user_id | int | 是 | 用户ID | MDTVPDonatePayGift.userId | 
| user_name | String | 是 | 用户名称 | MDTVPDonatePayGift.userName | 
| avatar | String | 是 | 用户头像 | MDTVPDonatePayGift.avatar | 
| user_token | String | 是 | 用户Token | MDTVPDonatePayGift.userToken | 
| gift_id | int | 是 | 道具ID | MDTVPDonatePayGift.giftId | 
| num | int | 是 | 打赏数量 | MDTVPDonatePayGift.num | 
| money | int | 是 | 总金额(单位:分) | MDTVPDonatePayGift.money | 
| phone | String | 否 | 用户手机号 | MDTVPDonatePayGift.phone | 
请求示例
- 道具打赏
 
{
    "order": {
        "type": 2,
        "trade_id": "07683173079973709805",
        "donate_id": 1711,
        "gift_id": 56035,
        "user_id": 4699065,
        "user_name": "测试用户1",
        "avatar": "https://static.mudu.tv/index/avatar.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://static.mudu.tv/index/avatar.png",
        "user_token": "fadaeab8-d177-478b-9ebb-72196200a2e1",
        "num": 1,
        "money": 100,
        "phone": "13511111111"
    }
}
返回示例
{
    "errcode": 1000,
    "msg": "成功"
}
demo和sdk下载
最新版本(v1.0.162304603)
更新说明:
包含直播观看,聊天互动,点赞,打赏,投票,问卷,竞答红包,红包雨,普通红包等,自定义菜单功能菜单分类包含图文,视频。
日期:2021年6月7日
下载iOS SDK以及Demo