媒体状态出现问题

时间:2019-06-23 12:12:07

标签: dialogflow google-assistant-sdk

我为Google助手开发了一个动作,它是一个简单的故事讲述器。直到几天前它一直运行良好(实际上我不能说问题何时开始出现)。基本上,由于故事时间超过3分钟,因此我将故事分为两个mp3文件。在第一个文件之后,询问用户是否要继续收听故事。如果用户说“是”,则播放第二个.mp3文件。 为此,我使用了MediaStatus控件。 此控件检查mp3是否在播放,如果没有播放,则检查当前故事是否还有第二部分,如果有,则询问用户是否要收听。 此时,媒体状态跟踪将侦听用户的回答,如果用户说是,它将播放故事。

就像已经说过的那样,它直到几天前仍然有效,但是现在,我注意到,当用户说“是”时,故事的第二部分开始了,但立即也出现了“再见”消息,它应该是在mp3文件结束后播放。 好像是媒体状态控件一样,它又被触发了,却没有意识到mp3正在播放,并与再见msg进行了回复。

我不知道我是否能够对此问题弄清楚。

我试图监视模拟器的运行状况,但是在那种情况下,一切都很好。或者我应该说“几乎可以”,因为它附在屏幕上的文本消息上(语音无法读取),有一条消息说“有一个错误”,但并不能阻止该操作正常进行,并且行为(至少在模拟器中)符合预期。

我期望这个顺序: 1)故事(mp3)开始。 2)当mp3停止播放时,如果还有第二部分,则询问用户是否要听 3)如果用户说“是”,则播放第二部分,在此mp3文件的末尾,有一个“再见”消息

相反,我有这个顺序 1)故事(mp3)开始。 2)当mp3停止播放时,如果还有第二部分,则询问用户是否要听 3)当用户说“是”时,播放第二部分但是,即使在mp3继续播放的情况下,也播放了再见msg,几秒钟后,该动作就退出了。

app.intent('Media Status', (conv) => {
const mediaStatus = conv.arguments.get('MEDIA_STATUS');
if (mediaStatus && mediaStatus.status === 'FINISHED') {
    console.log(`track finished: ${conv.user.storage.track}`);
    console.log(`storia2: ${conv.data.storia2}`);
    if (conv.data.storia2 !== undefined) {
        secondaParte =  `<audio src="` + randomPhrase(continuaFavola) + `">  <desc>Vediamo come va a finire...</desc>  Vuoi sapere come andrà a finire? </audio>`;
        storia = conv.data.storia2;
        conv.data.storia2 = undefined;
        conv.ask(new SimpleResponse('<speak>' + secondaParte +'</speak>'));
        return;
    }  else {
        var cinquestelle = `<audio src="` + randomPhrase(stellebreve) + `"><desc> ...e ricorda di lasciare una buona recensione!!!</desc> Grazie</audio>`;
        if ((date < 19) && (date > 5))  {
            goodnight = `<audio src="` + randomPhrase(finestoriaMsg) + `"><desc>...ci vediamo la prossima volta!!</desc>Ciao</audio>`;
        } else {
            goodnight =  `<audio src="` + randomPhrase(buonaNotte) + `"><desc>...e adesso Buonanotte!!</desc>Buona notte</audio>`; 
        }
        conv.close(new SimpleResponse('<speak>' + goodnight + cinquestelle +'</speak>'));
    } 
} else {
    conv.ask(new SimpleResponse('Mi fermo.'));
}

});

app.intent('媒体状态-是',(转化)=> {     conv.ask(new SimpleResponse(<speak> Ecco la conclusione della storia...</speak>));     conv.ask(new建议(['Buona notte!'])));     conv.ask(new MediaObject({         名称:标题,         网址:storia,         说明:autore,         图片:新图片({            网址:largeImageUrl,            alt:标题,         }),     })); });

0 个答案:

没有答案