-
DuerOS开放平台
-
技能开放平台
-
自定义技能
- 自定义技能简介
- 自定义技能创建
-
有屏技能
-
技能交互模型
-
自定义技能协议
- 处理DuerOS发送的请求
-
技能部署
-
技能开发样例
- 账户关联
-
技能测试
-
技能发布
-
技能付费
-
个性化服务
-
内容播报技能
-
小技能
-
平台能力扩展
-
SDK
-
预览版功能
- 全双工(Preview)
-
APP技能(Preview)
-
-
智能家居开放平台
- 品牌使用规范
-
开发者服务条款
当用户不使用语音交互,而是从设备端的屏幕控制音频或视频的播放时,DuerOS会把用户操作的控件及含义通过Form事件上报给技能。本文首先介绍用户常用的控件类型,接下来介绍如何将这些控件上报给技能。
设备端包含BUTTON和RADIO_BUTTON两种控件类型。
BUTTON控件指普通按钮控件,可以通过点击按钮执行命令。BUTTON控件可以渲染为选中状态和非选中两种状态。如音乐播放过程中的暂停、上一首、下一首、继续播放等都使用BUTTON控件。
{
"type": "BUTTON",
"name": "{{STRING}}",
"enable": {{BOOLEAN}},
"selected": {{BOOLEAN}}
}
- type
- 控件类型,这里取固定值BUTTON。
- name
- 控件名字。
- enable
- 按钮是否可点击,布尔类型,true表示按钮可以点击,false表示按钮不可点击。
- selected
- 按钮是否要渲染为选中状态,布尔类型,true表示渲染为选中状态,false表示渲染为非选中状态。
RADIO_BUTTON控件指单选按钮控件,支持通过点击来选择需要的选项。多个选项之间是互斥的,即一组选项中只能选择一个。例如音乐播放器的“循环模式切换”为单选按钮,用户可以从“单曲循环”、“随机播放”、“列表循环”三种模式中选择一种。
{
"type": "RADIO_BUTTON",
"name": "{{STRING}}",
"selectedValue": "{{STRING}}"
}
- type
- 控件类型,取固定值RADIO_BUTTON。
- name
- 控件名称。
- selectedValue
- 选中的选项值。
介绍DuerOS支持的常用控件列表。音乐播放器在播放音乐过程中会使用以下控件。
控件名 | 类型 | 描述 |
---|---|---|
PLAY_PAUSE | BUTTON | 上报该控件事件时,表示暂停播放或继续播放音频。 |
PREVIOUS | BUTTON | 上报该控件事件时,表示用户播放上一首音频。 |
NEXT | BUTTON | 上报该控件事件时,表示用户播放下一首音频。 |
REPEAT | RADIO_BUTTON | 上报该控件事件时,表示用户切换循环模式,目前支持以下三种循环模式。
|
FAVORITE | BUTTON | 上报该控件事件时,表示用户收藏或取消收藏正在播放的音频。 |
SHOW_PLAYLIST | BUTTON | 上报该控件事件时,表示用户显示或隐藏播放列表。 |
SHOW_FAVORITE_LIST | BUTTON | 上报该控件事件时,表示显示或隐藏收藏列表。 |
控件名 | 类型 | 功能 |
---|---|---|
PLAY_PAUSE | BUTTON | 上报该控件事件时,表示用户暂停播放或继续播放视频。 |
PREVIOUS | BUTTON | 上报该控件事件时,表示用户播放上一条视频。 |
NEXT | BUTTON | 上报该控件事件时,表示用户播放下一条视频。 |
SHOW_PLAYLIST | BUTTON | 上报该控件事件时,表示用户显示或隐藏播放列表。 |
FAVORITE | BUTTON | 上报该控件事件时,表示用户收藏或取消收藏该视频。 |
DELETE | BUTTON | 上报该事件时,表示用户将会删除该视频资源(如果权限满足) |
SAVE | BUTTON | 上报该事件时,表示用户将会保存该视频资源。(保存地点可能为云端,例如网盘) |
当用户在屏幕点击BUTTON按钮时,DuerOS会向技能发送Form.ButtonClicked事件。
{
...
"request": {
"type": "Form.ButtonClicked",
"name": "{{STRING}}",
"requestId": "{{STRING}}",
"timestamp": "{{STRING}}",
"token": "{{STRING}}"
}
...
}
- type
- 事件类型,取固定值Form.ButtonClicked。
- name
- 控件名称。
- requestId
- 标识本次请求的唯一ID。
- timestamp
- 请求时间戳,单位是秒。
- token
- 渲染此控件指令携带的token。
当用户在屏幕点击RADIO_BUTTON按钮时,DuerOS会向技能发送Form.RadioButtonClicked事件。
{
...
"request": {
"type": "Form.RadioButtonClicked",
"name": "{{STRING}}",
"requestId": "{{STRING}}",
"timestamp": "{{STRING}}",
"token": "{{STRING}}",
"selectedValue": "{{STRING}}"
}
...
}
- type
- 事件类型,取固定值Form.RadioButtonClicked。
- name
- 控件名称。
- requestId
- 标识本次请求的唯一ID。
- timestamp
- 请求时间戳,单位是秒。
- token
- 渲染此控件指令携带的token。
- selectedValue
- 选中选项值。