# 音频播放指令

音频播放指令为Response中的一部分,代表你的技能服务对设备端的操作。

指令 说明
AudioPlayer.Play 播放特定audioItem的音频
AudioPlayer.Stop 停止音频播放器正在播放的音频
AudioPlayer.ClearQueue 清空音频播放器中的音频流列表

# Play

 {
  "type": "AudioPlayer.Play",
  "playBehavior": "ENQUEUE",
  "audioItem": {
    "stream": {
      "type": "| 必须出现",
      "url": "https://example.com/audiofile.mp3",
      "text": "今天...",
      "token": "S0wiXQZ1rVBkov...",
      "expectedPreviousToken": "f78b7d68...",
      "offsetInMilliseconds": 0
    },
    "metadata": {
      "title": "《十年》",
      "subtitle": "陈奕迅",
      "art": {
        "sources": [
          {
            "url": "https://example.com/brie-album-art.png"
          }
        ]
      }
    }
  }
}

参数说明

参数名 说明 类型 必须出现
type 取值AudioPlayer.Play String
playBehavior 用来决定客户端怎么处理播放队列。可取值如下:

REPLACE_ALL: 立即停止当前播放的音频(发送PlaybackStopped事件至服务端)并清除当前播放队列,立即播放指令中的包含的audio item。
ENQUEUE: 将指令中的audio item添加到当前播放队列的尾部。
REPLACE_ENQUEUED: 替换播放队列中的所有audio item,但不影响当前正在播放的audio item。
String
audioItem 包含所要播放的音频资源 Object
audioItem.stream 云端音频流信息 Object
audioItem.metadata 音频播放时展示在有屏设备上的数据 Object

stream 参数说明

参数名 说明 类型 必须出现
type 音频文件的类型,可取值
- AUDIO,音频文件
- SPEECH,合成文本
String
url type取值为AUDIO时,此项必填,音频文件的播放地址。一般情况下是http/https地址,当音频内容是二进制音频附件时,格式为cid:{id} String
text type取值为SPEECH时,此项必填。此处填写需要使用TTS合成为音频文件的文本。 String
token 代表该资源的 token,技能方维护 String
expectedPreviousToken 代表前一个音频资源的token。若该参数存在时,需要进行校验:
- 在playBehaviorENQUEUE时,该参数应该与当前播放队列末尾audioItem的token一致
- 在playBehaviorREPLACE_ENQUEUED时,该参数应该与当前正在播放的audioItem的token一致
若不一致则不执行本Play指令。
String
offsetInMilliseconds 客户端从指定的offset开始进行播放 Long

metadata 参数说明

参数名 说明 类型 必须出现
title 音频文件的标题 String
subtitle 音频文件的副标题,一般为作者或者分类 String
art 音频文件封面,尺寸 960 x 960px Image Object

# Stop

{
  "type": "AudioPlayer.Stop"
}

# ClearQueue

{
  "type": "AudioPlayer.ClearQueue",
  "clearBehavior" : "CLEAR_ALL"
}

参数说明

参数名 说明 类型 必须出现
type 取值AudioPlayer.ClearQueue String
clearBehavior 用来决定设备端怎么清除队列。
- CLEAR_ENQUEUED: 清除队列并继续播放当前歌曲。
- CLEAR_ALL: 清除队列并停止播放当前歌曲。
String