gpt4 book ai didi

node.js - 自动播放媒体直到谷歌对话流中的时间到

转载 作者:太空宇宙 更新时间:2023-11-04 01:40:38 24 4
gpt4 key购买 nike

我最近正在研究 Google Actions。我需要播放 mp3 的 url x 分钟(这是从用户处收到的,例如播放 abc 30 分钟。)。我的问题是我的 mp3 网址只有 1.30 分钟长。我怎样才能玩到x分钟。我使用dialogflow index.js 文件作为代码。这是我尝试的方法

app.intent('soundplay', (conv, {soundreq, duration}) => {
conv.ask(new Suggestions('Exit'));

conv.ask(new SimpleResponse({
speech: 'xxx',
text: 'xxx',
}));

conv.ask(sound);
var d = duration.milliseconds;
setTimeout(sound, d);

});

我尝试使用 setTimeout 但它也不起作用。

最佳答案

您需要处理一些问题。

首先,您的代码示例中的声音非常模糊。您在 setTimeout() 中使用它,这表明它是一个函数,但您还将它传递给 conv.ask() ,这表明它是一个 MediaResponse 或其他对象。

第二个是此代码将在您的服务器上运行,而不是在用户的设备上运行,并且操作以对话式来回模型运行。因此,一旦您向用户发送了某些内容,您就需要等待,直到用户(或用户的设备)向您发送另一条您可以回复的消息。

解决方案是包含 MediaObject作为您构建的响应的一部分。这将包括您要播放的音频的 URL,以及标题和一些其他信息。

音频播放完毕后,您的 Dialogflow 代理将收到一条包含 actions_intent_MEDIA_STATUS 事件的消息。您可以创建一个处理此事件的 Intent,并在 Webhook 中的 Intent Handler 中检查时间是否已过期。如果有,您可以提示现在要做什么或结束对话或采取任何适当的措施。如果尚未过期,您可以使用另一个 MediaObject 再次播放音频。

关于node.js - 自动播放媒体直到谷歌对话流中的时间到,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53099327/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com