在 Google 家庭助手上播放 MP3 列表
Play a list of MP3 on Google Home assistant
我正在尝试构建一个使用“媒体响应”播放 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 而不是列表 (i.g. conv.ask(mo_list[0]) ) 一切正常。
虽然它被设计为采用列表(可能是由于较早的设计或将来适应多种格式或功能),但您应该只传递此列表中的一项。
音频播放完毕后,如果您使用的是 Action SDK,您将获得一个 actions.intent.MEDIA_STATUS
意图,否则将使用 actions_intent_MEDIA_STATUS
事件触发 Dialogflow 意图。然后您可以使用另一个 MediaObject 进行响应。
我正在尝试构建一个使用“媒体响应”播放 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 而不是列表 (i.g. conv.ask(mo_list[0]) ) 一切正常。
虽然它被设计为采用列表(可能是由于较早的设计或将来适应多种格式或功能),但您应该只传递此列表中的一项。
音频播放完毕后,如果您使用的是 Action SDK,您将获得一个 actions.intent.MEDIA_STATUS
意图,否则将使用 actions_intent_MEDIA_STATUS
事件触发 Dialogflow 意图。然后您可以使用另一个 MediaObject 进行响应。