我正在尝试使用“媒体响应”建立播放mp3列表的意图。正如我在Google文档上的“操作”中所读到的那样,MediaResponse可以包含一个媒体对象列表,我已经对其进行了测试,但是它不起作用。这是我的代码:
if(!conv.surface.capabilities.has('actions.capability.MEDIA_RESPONSE_AUDIO')) {
conv.ask('Sorry, this device does not support audio playback.');
}
else{
var mo_list = [
new MediaObject({
name: 'Radio one',
url: 'my_mp3_url_1.mp3',
description: 'A funky Jazz tune'
}),
new MediaObject({
name: 'Radio two',
url: 'my_mp3_url_2.mp3',
description: 'A funky Jazz tune'
})
];
conv.ask( mo_list );
conv.ask(new Suggestions(['Radio two']));
}
怎么了?如果我只使用一个MediaObject而不是列表(例如conv.ask(mo_list [0])),那么一切正常。
答案 0 :(得分:0)
尽管其设计目的是要列出一个列表(可能是由于较早的设计或将来要包含多种格式或功能),但您只应在此列表中传递一个项目。
音频播放完毕后,如果您使用的是Action SDK,则将获得actions.intent.MEDIA_STATUS
意图,否则actions_intent_MEDIA_STATUS
事件将触发一个Dialogflow意图。然后,您可以使用另一个MediaObject进行响应。