Alexa - Getting user input after playing video (Echo Show)

amazon-alexa

#1

My app is already quite flexible in its routing. I can play a video to a user if they have a device with a screen, but if they don’t I can still route to a follow up state:

const question = "Example question...";

if (this.$alexaSkill.hasScreenInterface()) {

    this.$alexaSkill.showVideo(videoSourceUrl, videoTitle, videoSubtitle);

    this.followUpState('ExampleFollowUpState').ask(question);

} else if (!this.$alexaSkill.hasScreenInterface()) {

    this.followUpState('ExampleFollowUpState').ask(question);

}

Here’s my problem:

Suppose the user has an Echo Show device. When the video ends, this.followUpState() won’t route to the specified follow-up state. Is it possible to ask a user for input after playing a video? So far, this is ending the conversation flow, leaving the user with no where to go.

Many thanks,

Simon


#2

Hi @simon.revill! Alexa does not offer that capability at this time through the video player. I have heard they have something like that available via APL video with something like an onEnd method, but I have not used it yet.

https://developer.amazon.com/docs/alexa-presentation-language/apl-video.html#on-end


#3

Hi @natrixx . Thanks for this tip. I’ve just recently started using APL in my skill so I will look into that with the Amazon Docs. Cheers!


#4

Hi @simon.revill ,

I was wondering if you were ever able to get a video played using APL?
I tried it for a bunch of days but couldn’t get it to run on my Echo Show.

But when I click “LAUNCH” in the Jovo debugger, it seems to have the right response

Thanks,
David


#5

Hi @davidchl. It’s been a while now but from memory I don’t think so. I seem to remember looking at the APL docs and discovering the features were very limited for video at the time. They may have been updated since then, and I haven’t checked. In the end I’m sure I just had to use the VideoApp interface (set up in config) and the Jovo showVideo() methods, along with a custom intent to launch the request. See more here: https://www.jovo.tech/docs/amazon-alexa/visual-output

I will have to check my code in the morning when I’m at work, and I’ll come back here and confirm exactly what it was that I did.

By the way - I never had success using the Jovo Debugger for visual stuff. Great for checking intent responses / general debugging but for visual, I’d always use the Echo Show or Google Home Hub for testing. Catch up with you later -Simon.


#6

Thanks @simon.revill, would love to see how you did it with showVide()

Yeah the Jovo Debugger seemed to have the right response (doesn’t actually play video) but when I tried it on the Echo Show, it just threw an error response.

I was continuing to google the issue and stumbled about this which seemed to work!


#7

Hi @davidchl,

Sorry for this mega-late reply. I’m back working on this code again, and having more video issues so I thought I’d share what I did before when the user says ‘Yes’ to seeing a video:

return this.$alexaSkill.showVideo(
         videoSourceUrl,
         videoTitle,
         videoSubtitle
       );

#8

Hi @simon.revill,
I’m also stuck with the same problem like after the video gets over, I need Alexa to ask user for the next action. But, unfortunately, it’s not speeching out anything. As mentioned in the comments about onEnd method, I have tried that too, but I didn’t get the expected result. Could you please help me in this ?