我正在尝试构建一个使用“媒体响应”播放 mp3 列表的意图。正如我在 Action on 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]) ),则一切正常。
最佳答案
虽然它的设计目的是获取一个列表(可能是由于早期的设计或将来适应多种格式或功能),但您应该只传递此列表中的一项。
当音频完成时,如果您使用 Action SDK,您将获得 actions.intent.MEDIA_STATUS
Intent,或者将通过 actions_intent_MEDIA_STATUS
事件触发 Dialogflow Intent。然后您可以使用另一个 MediaObject 进行响应。
关于node.js - 在 Google Home 助理上播放 MP3 列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55262940/