# 播放控制
# 协议类型
消息类型 | 名称 | 必须实现 |
---|---|---|
event | control_command | 否,需云端支持播放控制才需实现 |
应用场景
当用户在设备上通过按键/界面控制音频播放时,可以发送请求告知云端,云端会根据请求命令返回一个音频资源,终端设备需等待云端的返回并进行对应的执行。
注意
- 当用户在设备上通过按键/界面控制资源播放时,如果可以在设备上自行处理该用户请求(终端已获取播放列表),请自行在设备上进行处理,无需发送请求至云端
- 如果无法在设备上自行处理该用户请求,可以发送
playback_controller.control_command
,由云端判断用户控制的是什么资源 - 为了防止网络状态不好时用户无法暂停资源播放,用户点击PAUSE按钮,设备必须在设备上自行处理暂停操作
# context
"unios_context": {
...
"playback_controller": {
"version": "1.0"
},
...
}
1
2
3
4
5
6
7
2
3
4
5
6
7
参数 | 类型 | 说明 | 必填 |
---|---|---|---|
version | string | 模块版本,现在是1.0 | 是 |
# event
播放控制
请求示例
{
"unios_header": {...},
"unios_context": {...},
"unios_event": {
"header": {
"name": "playback_controller.control_command",
"message_id": "xxxxxxxx"
},
"payload": {
"type": "PAUSE",
"resource_id":"xxxxxx",
"offset":15000,
}
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
2
3
4
5
6
7
8
9
10
11
12
13
14
15
参数 | 类型 | 说明 | 必填 |
---|---|---|---|
unios_header | Object | 构建的通用 unios_header | 是 |
unios_context | Object | 构建的通用 unios_context | 是 |
type | String | 状态类型,详细信息见下表 | 是 |
resource_id | String | 当前播放资源ID | 否 |
offset | Integer | 当前播放位置 | 否 |
target_offset | Integer | 目标播放位置 | 否 |
type类型说明
type类型 | 说明 | 是否有回复 |
---|---|---|
PAUSE | 执行了暂停动作之后,发送此类型并告知当前 resource_id | 是,得到pause回复 |
RESUME | 执行了继续播放之后,发送此类型并告知当前 resource_id | 是,会收到一个带offset的播放内容,应该优先用offset进行播放对应资源 |
NEXT | 按键下一首,发送此类型并告知当前 resource_id | 是,得到下一首内容 |
PREVIOUS | 按键上一首,发送此类型并告知当前 resource_id | 是,得到上一首内容 |
FAST_FORWARD | 快进,发送此类型并告知当前 resource_id、offset、target_offset | 是,会收到一个带offset的播放内容,应该优先用offset进行播放对应资源(如果上传target_offset,则回复中的offset值为target_offset的值,常见场景:用户滑动播放器中的滚动条时的快进快退) |
FAST_REWIND | 快退,发送此类型并告知当前 resource_id、offset、target_offset | 是,会收到一个带offset的播放内容,应该优先用offset进行播放对应资源(如果上传target_offset,则回复中的offset值为target_offset的值,常见场景:用户滑动播放器中的滚动条时的快进快退) |
EXIT | 按键关闭,发送此类型消息并告知当前resource_id | 否 |