产品架构
优势:可以快速植入原生小程序,满足抄底延迟,超大并发量的要求,基于微信生态,能快速通过微信传播
费用
注意:
- 类目资质下来在进行购买,否则购买了小程序也会驳回
- 即日起至2020年8月31日,申请插件通过后立享免授权费试用1个月,活动页 下单可享额外优惠(试用期间流量费正常结算,最终上线以微信审核为准,建议发布成功后再下单购买)
费用组成: 插件授权费(30,000元/年/插件) + 小程序直播流量费 + 增值功能费
计费说明:一个插件授权只能一个appid使用,授权可以叠加买,相当于延期,
小程序直播流量费用: 4元/ GB 计费方式:后付费,每月1号口出上月费用
增值功能费用: 直播转码,直播录制,直播截图,智能鉴黄,移动直播SDK,点播服务,IM相关服务
方案选择
场景类直播:需要开通 1,电商平台类目(方案:小程序直播插件) 2,社交-直播类目(标准直播+直播标签)
资质
小程序 - 云直播插件
方案我们选择: 小程序+云直播插件
申请插件
- 登录微信小程序后台,在【设置】 > 【基本设置】中,确定已具备符合接入的类目,然后保存基本信息服务类目截图备用(小程序名称和服务类目),和记录小程序AppID用于填写申请。
- 在小程序后台选择【设置】【第三方设置】【插件管理】,添加小程序-云直播插件并截图
- 小程序需要满足【电商】或【教育】类目场景,为避免购买后无法接入,需要先准备以上信息和截图
- 信息提交完成后,审核为5个工作日
购买服务
当插件状态【待审核】变为【待付款】,即可前往购买插件,见购买指南
添加直播域名
完成插件购买后,在【云直播控制台】【域名管理】中,单击【添加域名】,捷克添加直播域名。
可使用标准直播的推流域名进行直播推流,使用小程序的播放域名进行播放,按照小程序直播的价格计费,可参见 购买指南
- 若无小程序直播推流需求,无需添加小程序推流域名,可直接使用标准直播的推流域名在 App 或者 OBS 推流即可。
- 小程序插件必须使用小程序直播的播放域名,但是 App 或其他终端不限制,建议 App、Web(H5)等其他终端使用标准直播的播放域名进行播放。
注意:
- 添加小程序直播的播放域名时,建议使用当月没有产生消耗的自有域名,否则添加完成后当月用量均按照小程序直播的价格出账。
- 添加小程序直播的播放域名后,暂不支持删除解绑,请慎重处理。
域名CNAME配置
域名计入云直播后,系统会自动分配一个CNANE域名,可在管理列表中查看。CNAME不能访问,需要在域名服务提供商完成CNAME配置,配置生效后,即可使用云直播服务。
若您的 DNS 服务商为阿里云,且已完成域名备案,可参考下述步骤进行 CNAME 设置。
- 登录阿里云控制台,进入【云解析DNS】>【域名解析】。
- 选择您需添加 CNAME 的域名,单击【解析设置】。
- 选择【添加记录】,在添加记录页进行如下设置:
- 记录类型:选择
CNAME
。 - 主机记录:填写子域名的前缀。若播放域名为
play.myqcloud.com
,则添加play
;若需要直接解析主域名myqloud.com
,则输入@
;若需要解析泛域名,则输入\*
。 - 解析路线:建议选择
默认
。 - 记录值:填写腾讯云控制台域名管理页域名对应的 CNAME 值,格式为
domain.livecdn.liveplay.myqcloud.com
。 - TTL:建议填写
10分钟
。
- 记录类型:选择
- 单击【确定】即可。
验证CNAME是否生效
方法1:进入云直播控制台的【域名管理】查询后缀为.myqcloud.com
的域名状态符号是否变成表明 CNAME 已成功。
方法2:Linux/Mac 系统下,通过 dig 命令查看,命令格式为:dig 自有域名
。若第一行显示解析到云直播提供的目标域名,表明 CNAME 已成功
方法3:Windows 系统,可通过【开始】→【运行】→输入 cmd 并回车,在命令行模式下输入:nslookup 自有域名
。若已解析至云直播提供的目标域名,表明 CNAME 已成功。
使用推流组件
先了解插件
版本支持:见文档
准备工作
- 在 微信公众平台 注册并登录小程序。
- 符合接入要求,申请插件并购买小程序·云直播服务,详见 小程序·云直播插件。
- 开通小程序·云直播服务后,登录 云直播控制台,在【域名管理】中添加小程序直播域名,然后 自助拼接直播地址。
- 下载并安装最新版本的 微信开发者工具,使用小程序绑定的微信号扫码登录开发者工具。
在小程序中引入插件代码,在app.json中声明要使用的插件
{
……
"plugins": {
"liveRoomPlugin": {
"version": "1.3.0",
"provider": "wx95a7d2b78cf30f98"
}
}
}
使用插件中推流组件
在page的.json中定义需要定义的live-room-push组件,使用plugin://协议
{
"usingComponents": {
"live-room-push": "plugin://liveRoomPlugin/live-room-push" //推流组件
}
}
在page的.wxml文件加载上一步引入的live-room-push组件
<live-room-push liveAppID="{{liveAppID}}" pushUrl="{{pushUrl}}" orientation="{{orientation}}" muted="{{muted}}" mode="{{mode}}" waitingImage="{{waitingImage}}" enableCamera="{{enableCamera}}" beauty="{{beauty}}" whiteness="{{whiteness}}" backgroundMute="{{backgroundMute}}"
debug="{{debug}}" autoFocus="{{autoFocus}}" aspect="{{aspect}}" minBitrate="{{minBitrate}}" maxBitrate="{{maxBitrate}}" zoom="{{zoom}}" devicePosition="{{devicePosition}}" sdkAppID="{{sdkAppID}}" accountType="{{accountType}}" userID="{{userID}}" userSig="{{userSig}}"
roomID="{{roomID}}" nickName="{{nickName}}" avatar="{{avatar}}" bindPushEvent="onPushEvent" bindIMEvent="onIMEvent">
直播插件的使用方法和微信原生标签的方法一致,可参考微信小程序标签 live-pusher 的文档说明。
组件实例化
live-room 组件支持开始推流,截图,切换摄像头等接口,要调用这些接口需要获取live-room-push实例
在page的.js文件中,将插件加载进来,即可获取live-room-push组件实例
// 加载插件
var plugin = requirePlugin("liveRoomPlugin")
// 获取 live-room 组件实例
var liveRoomComponent = plugin.instance.getLiveRoomInstance();
组件接口
可参考微信小程序组件 LivePusherContext 方法
推流事件
- 普通的推流事件,tag 是 pushEvent,code 含义见 状态码。
- 错误事件,tag 是 error。现在只有白名单校验出错时会抛出,code 是-1,具体的错误原因在 detail 中给出。
使用播放组件
版本支持,准备工作同引入插件代码同推流组件
使用播放组件
{
"usingComponents": {
"live-room-play": "plugin://liveRoomPlugin/live-room-play" //播放组件
}
}
在 page 的.wxml
文件加载上一步引入的live-room-play
组件。
<view class="container-box">
<view class="player-view">
<live-room-play liveAppID="{{liveAppID}}" playUrl="{{playUrl}}" orientation="{{orientation}}" objectFit="{{objectFit}}"
minCache="{{minCache}}" maxCache="{{maxCache}}" mode="{{mode}}" muted="{{muted}}" debug="{{debug}}" bindPlayEvent="onPlayEvent" >
</live-room-play>
</view>
</view>
播放组件相关属性说明
直播插件的使用方法和微信原生标签的方法一致,可参考微信小程序标签 live-player 的文档说明。
在组件区域叠放额外展示信息
组件提供了一个<slot>节点,用于承载组件引用时提供的子节点。本功能受限于微信,只能在组件上叠加cover-image
、cover-view
和canvas
。
组件实例化
live-room 组件支持播放、停止播放、全屏等接口,要调用这些接口需要先获取到 live-room-play 的实例。
live-room-play 是腾讯视频云直播插件中的一个组件,在腾讯视频云直播插件中暴露了获取 live-room-play 组件实例的接口,您只需要先在 page 的.js
文件中,将插件加载进来,即可获取到 live-room-play 组件实例。
// 加载插件
var plugin = requirePlugin("liveRoomPlugin")
// 获取 live-room 组件实例
var liveRoomComponent = plugin.instance.getLiveRoomInstance();
live-room-play 组件提供如下接口:
- 可参考微信小程序组件 LivePlayerContext 方法。