音频播放指令

音频播放指令为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.PlayString
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
urltype取值为AUDIO时,此项必填,音频文件的播放地址。一般情况下是http/https地址,当音频内容是二进制音频附件时,格式为cid:{id}String
texttype取值为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 960pxImage Object

Stop

{
  "type": "AudioPlayer.Stop"
}

ClearQueue

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

参数说明

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