我正在使用actions-sdk和nodejs构建一个“游戏”。对于此游戏,一项功能要求audo在获得用户输入之前完成。是否可以使用conv.ask()忽略文本意图中的输入,直到音频完成?无论如何,还有没有在音频结束时在conv.ask()上放置回调?
答案 0 :(得分:1)
您可以使用媒体回复:https://developers.google.com/actions/assistant/responses#media_responses
当音频结束时它有一个回调。在回调中,您可以进行一次conv.ask提示用户输入。
答案 1 :(得分:0)
这是Assistant的正常行为-麦克风保持关闭状态,直到完成音频为止,然后打开麦克风供用户回复。但是,用户可以在任何时候使用热字(“嘿,谷歌”)打断助手。没有办法阻止它,但是并不清楚为什么要阻止他们这样做。
在传递音频时也没有办法进行回调。请记住,conv.ask()
在您的服务器上运行-不在本地设备上运行(尽管音频在该设备上播放)。
如果您想做类似问一个问题的事情,然后给他们15秒的回答时间,那么您可能会调查一下媒体响应是否可以帮助您。如果您随媒体问题一起问问题,他们可以用“ Hey Google”和答案打断音频,否则媒体将结束并向您发送事件。