互动工具开发者指南(抖音 App + 直播伴侣)
收藏
我的收藏更新日志
日期 | 更新内容 |
2024.08.13 |
|
名词解释
名词 | 名词解释 | 截图(demo) | |
直播互动工具 | 「直播互动工具」是「直播间互动面板」中一种互动玩法,旨在激发主播与直播间观众互动。它分为两部分:「互动插件玩法面板」和「互动插件玩法卡片」。以下简称「插件」、「玩法面板」、「玩法卡片」。 | | |
直播间互动面板 | 主播互动工具的集合页,里面有互动工具列表(包含互动插件)。 | | |
互动插件详情页 | 从「直播间互动面板」点击某一个互动插件,会跳转到「互动插件详情页」,主要展示互动插件详细信息,若涉及到付费,需要购买支付才能使用。 | | |
互动插件玩法面板 (开发者开发) | 从「互动插件详情页」点击打开按钮,会跳转到「互动插件玩法面板」,玩法面板是个半屏小程序页,主要用于「配置玩法规则」和「启动/关闭玩法卡片」。 | | |
互动插件玩法卡片 (开发者开发) | 玩法面板点击开启按钮,会打开玩法卡片,主要用于激发主播与直播间观众互动。 | | |
抖音开放平台 (开发者使用) | 提供小程序、直播小玩法、直播互动工具等多业务载体,为开发者提供丰富的能力和解决方案 | ||
抖音开发者工具 (开发者使用) | 抖音开发者工具是面向抖音开放平台开发者推出的桌面端集成开发环境。开发者工具支持开放平台应用(包含小程序、小游戏等)编辑、调试、预览、上传等基本功能。 |
客户端下载
抖音开发者工具
抖音 App
- •安卓:
- •iOS:
直播伴侣
Tips:需要在 Windows 电脑打开
开发 Demo
整体流程
创建插件
- 1.打开抖音开放平台,进入控制台页面,定位到「直播小玩法」Tab 下面(未登录时需要注册/登录)
- 2.点击「创建直播小玩法」按钮
- 3.选择「互动插件」类型,点击下一步
- 4.填写互动插件名称,勾选阅读协议按钮,然后点击「创建」按钮
- 5.创建成功后会跳转到控制台,可以查看到刚才创建的互动插件,点击进入插件详情页面
- 6.申请开放数据能力
- 7.申请平台基础能力,
exe
类型插件仅在直播伴侣中运行;小程序类型插件在抖音 App 和直播伴侣中均可运行- 8.配置开发产物类型,需要注意,一旦审核完或者上线后,产物配置就不允许再变更了!开发者要提前选择好开发产物类型。
- 9.完善基础信息
以上插件创建流程全部走完,可以进入开发阶段。
开发插件
注意:插件真实运行依赖抖音直播间环境。
插件分为两部分:「玩法面板」和「玩法卡片」。
- •玩法面板是个半屏小程序页,主要用于「配置玩法规则」和「启动/关闭玩法卡片」。
- •玩法卡片是个 Canvas 画布,主要用于「接收直播间开放数据」,当数据到达「玩法面板」所配置的指标时,激发主播与直播间观众互动。
开发前首先要下载 抖音开发者工具(IDE)
下载完成,打开登录后,选择「小玩法」下面的「直播互动插件」,新建项目,填写项目信息,使用空白模板创建。
项目创建完成后,IDE 的模拟器中可以看到「玩法面板」和「玩法卡片」两块区域。
假设互动插件小程序,目录结构如下,其中
live-card
目录用于玩法卡片开发,pages
目录用于玩法面板开发:├── app.js ├── app.json ├── app.ttss ├── project.config.json ├── pages │ └── index ├── live-card │ ├── card.js
首先需要在
app.json
文件的 liveCards
字段声明放置玩法卡片代码 JS/TS 文件路径。{ "liveCards": ["live-card/card"] }
玩法面板开发
玩法面板(后文简写为 Page)实际上就是一个半屏的小程序页面,开发范式和小程序规范一致,但支持 JS API 能力和线上小程序相比会存在删减,且路由能力只支持 redirectTo,即所有路由页面都在同一个小程序面板中承接。
以下是一个标准的玩法面板,由三部分组成:
- •顶部 Header 栏:互动插件小程序框架自带,开发者只需要配置 pages 下
index.json
文件即可{ "usingComponents": {}, "navigationBarTitleText": "实时歌词", "navigationBarSubTitleText": "智能识别当前曲目,自动展示歌词" }
- •中间配置区域:用于配置玩法,由开发者自行实现
- •底部按钮区域:用于启动/关闭玩法,由开发者自行实现。启动/关闭玩法的本质是通过
tt.createLiveCard
、tt.exitMiniProgram
来打开和关闭玩法卡片。由于卡片是个 Canvas 画布,放置在直播间内,开发者需要先感知卡片展示的最大宽高,可以通过 tt.getLiveRoomCardInfo
来获取。// 获取卡片最大宽高 tt.getLiveRoomCardInfo({ success(res) { console.log('调用成功:', res.liveCardMaxWidth, res.liveCardMaxHeight); // 启动玩法 tt.createLiveCard({ url: '/live-card/game', width: res.liveCardMaxWidth, // 卡片宽度,可以修改,建议设置一个小于最大宽度的值 height: res.liveCardMaxHeight, // 卡片高度,可以修改,建议设置一个小于最大高度的值 success: async ({ cardContext, errMsg }) => { console.info('Card created!', cardContext, errMsg); }, fail: ({ errMsg }) => { console.error('Create card error: ', errMsg); }, }) }, fail(res) { console.log('调用失败:', res.errMsg); } }) // 关闭玩法 tt.exitMiniProgram({ isFullExit: true, // true:完全关闭,false:隐藏玩法面板 success: (res) => { console.log('完全退出小程序成功') }, fail: (res) => { console.log('完全退出小程序失败') }, });
玩法卡片开发
注:一个小程序内仅支持同时打开一个玩法卡片,确保基础库为 3.41.0 及以上版本。
玩法卡片(后文简写为 Card)必须在 Page 中通过
tt.createLiveCard
进行创建,创建过程中会加载玩法卡片文件 live-card/card.js
中用 Card 构造器 注册的玩法卡片,生成一个 Card 实例,并且触发它的 created 生命周期钩子。这个 Card 实例将支持 show、hide 等框架提供的能力,同时也支持开发者在 Card 实例上自定义一些能力。这个实例除了在 Card 内能通过 this 获取,也会在
tt.createLiveCard
成功回调返回给 Page。