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
,这将是处理媒体播放完成回调的意图。感谢