1

我正在尝试制作一个 Alexa 健身应用程序,当用户开始锻炼时,Alexa 会解释锻炼,然后播放音频文件。然后我想让 Alexa 解释第二个练习并播放下一个音频文件。重复这个大约5个练习。

这是我的代码的一部分:

else if (slotValues.area.heardAs == 'lower body' || slotValues.area.heardAs == 'lower' || slotValues.area.heardAs == 'legs') {

say = 'Great choice! We will get started with an lower body workout. Let\'s begin with a warm-up. The first exercise is ' + lowerWorkout1[0].name + lowerWorkout1[0].description + ' 3. 2. 1.' ;

handlerInput.responseBuilder.addAudioPlayerPlayDirective('REPLACE_ALL', sLowerWorkout1.url, sLowerWorkout1.token, 0, null, sLowerWorkout1.metadata);
                // Then explain second exercise
                // Play the second audio
                // Then explain third exercise
                // Play the third audio
            }

/.../

 return responseBuilder
            .speak(say)
            //.reprompt('try again, ' + say)
            .getResponse();

我试图在 audioPlayerPlayDirective 之后添加第二个 say 变量,但它只输出第二个 .speak() 然后播放第一个音频文件。我还尝试在 getResponse() 之后添加另一个 .speak() ,但这给了我一个错误。

有没有人对我如何做到这一点有任何想法?

谢谢,

马丁

4

1 回答 1

0

一旦您的音频播放器启动,您的技能将结束其会话。这意味着要么您正在播放 mp3,要么您正在技能会议中并且您可以说话。不是都。我想解决方法是将所有内容都作为音频剪辑。

于 2021-11-22T10:33:43.360 回答