node.js - 在 Google Home 助理上播放 MP3 列表

标签 node.js actions-on-google

我正在尝试构建一个使用“媒体响应”播放 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/

相关文章:

node.js - 在与 Actions on Google 的对话中保存数据

node.js - nodeJS何时以及如何释放堆内存?

input - 使用 node.js 从输入中获取密码

node.js - Node 应用程序无法连接到 MongoDB,但仅在 Docker 中

javascript - 获取原始参数输入 - Dialogflow Fulfillment

google-cloud-functions - Google TDD 或测试环境上的操作

php - 允许 Node.js Web 服务器处理 PHP

node.js - 我可以将文件从 node-webkit 应用程序中拖出并放到桌面上吗?

node.js - : DialogFlow + OAuth2. 0

javascript - 从语音交互 Canvas 中获取文本?