Node.js 在dialogflow中处理音频播放完成回调(媒体响应)
我通过播放Node.js 在dialogflow中处理音频播放完成回调(媒体响应),node.js,dialogflow-es,actions-on-google,Node.js,Dialogflow Es,Actions On Google,我通过播放MediaObject来处理意图。我想创建一个intent处理程序,它将捕获媒体播放完成的回调,下面的示例展示了如何编写实现代码来处理它 建立你的成就感 下面的代码片段显示了如何编写实现代码 感谢你的行动。如果使用Dialogflow,请替换 actions.intent.MEDIA_状态,操作名称在 接收操作\意图\媒体\状态事件的意图(用于 例如,“media.status.update”) 我对dialogflow指令的部分感到困惑。我处理和返回MediaObject的意图被称为
MediaObject
来处理意图。我想创建一个intent处理程序,它将捕获媒体播放完成的回调,下面的示例展示了如何编写实现代码来处理它
建立你的成就感
下面的代码片段显示了如何编写实现代码
感谢你的行动。如果使用Dialogflow,请替换
actions.intent.MEDIA_状态,操作名称在
接收操作\意图\媒体\状态事件的意图(用于
例如,“media.status.update”)
我对dialogflow指令的部分感到困惑。我处理和返回MediaObject的意图被称为smoothie-02
,我有一个回退,在媒体播放结束后处理,但我想创建另一个意图并在那里处理。我想做的是创建一个新的意图这将处理它,而不是进入smoothie-02
intent的回退意图
smoothie-02
handler
app.dialogFlow.intent('smoothie-02', (conv) => {
const welcomeContext = getConvContext(conv, AppContexts.WELCOME);
givenName = welcomeContext.parameters['given-name'];
fruitTypes = welcomeContext.parameters['FruitTypes'];
if (!conv.surface.capabilities.has('actions.capability.MEDIA_RESPONSE_AUDIO')) {
conv.ask('Sorry, this device does not support audio playback.');
return;
}
conv.contexts.set("actions_capability_media_response_audio", 5);
// Zoe says something
let response = `Ooh good choice ${givenName} ! `;
response += fruitTypes.length > 1 ? `${fruitTypes[0]} and ${fruitTypes[1]}` : `${fruitTypes[0]} `;
response += `${drinkType} ` ;
response += 'coming right up. But will you first turn me on?';
console.log(response);
conv.ask(response);
conv.ask(new Suggestions("Don't be shy"));
// Blender plays
conv.ask(new MediaObject({
name: 'Blender Sound',
url: 'https://storage.googleapis.com/zoe-mortimer.appspot.com/blender.wav',
}));
});
我需要做的是创建一个新的意图,并在事件中添加
actions\u intent\u MEDIA\u STATUS
,这将是处理媒体播放完成回调的意图。感谢