question

Irina Sergienya avatar image
Irina Sergienya asked

APL Video : ControlMedia "pause" does not work on Echo Show 5 and Echo Spot

Hello there. Does anyone have solution for this?

I'm trying to play video in APL Video component and add the option to pause and resume video by voice (AMAZON.PauseIntent and AMAZON.ResumeIntent), using ExecuteCommands with ControlMedia pause/play.


In simulator: video plays, pauses after the "pause" command, resumes after the "resume" command.

On real device: video plays, does not pause.


One interesting thing is that in simulator positionInMilliseconds and state varies depending on the command. The JSON look like:

context["Alexa.Presentation.APL"]["componentsVisibleOnScreen"]["children"][""tags"]["media"]: {
"positionInMilliseconds": 0,
"state": "playing",
...
}


While they stay "0" and "idle" in logs from Echo Show 5 and Echo Spot:

"context": {
        "Alexa.Presentation.APL": {
            "token": "VideoPlayerToken",
            "version": "AriaRuntimeLibrary-1.0.1433.0",
            "componentsVisibleOnScreen": [
                {
                    "uid": ":1000",
                    "position": "960x480+0+0:0",
                    "type": "video",
                    "tags": {
                        "viewport": {}
                    },
                    "children": [
                        {
                            "id": "myVideoPlayer",
                            "uid": ":1001",
                            "position": "960x480+0+0:0",
                            "type": "video",
                            "tags": {
                                "media": {
                                    "positionInMilliseconds": 0,
                                    "state": "idle",
                                    "url": "https://s3....mp4",
                                    "allowAdjustSeekPositionForward": true,
                                    "allowAdjustSeekPositionBackwards": false,
                                    "allowNext": false,
                                    "allowPrevious": false,
                                    "entities": []


The handlers and APL document:

const PlayVideoIntent = {
    canHandle(handlerInput) {
        return handlerInput.requestEnvelope.request.type === 'IntentRequest'
            && handlerInput.requestEnvelope.request.intent.name === 'PlayVideoIntent';
    },
    handle(handlerInput) {
        return handlerInput.responseBuilder
            .speak("Playing test video")
            .addDirective({
                type: 'Alexa.Presentation.APL.RenderDocument',
                token: "VideoPlayerToken",
                document: {
                    "type": "APL",
                    "version": "1.1",
                    "settings": {},
                    "theme": "dark",
                    "import": [],
                    "resources": [],
                    "styles": {},
                    "onMount": [],
                    "graphics": {},
                    "commands": {},
                    "layouts": {},
                    "mainTemplate": {
                        "parameters": [
                            "payload"
                        ],
                        "items": [
                            {
                                "type": "Container",
                                "items": [
                                    {
                                        "type": "Video",
                                        "id": "myVideoPlayer",
                                        "height": "100vh",
                                        "width": "100vw",
                                        "source": "https://s3....mp4",
                                        "autoplay": true                                   
                                    }
                                ]
                            }
                        ]
                    }
                },
                datasources: {}
            })
            .getResponse();
    }
}
const PauseIntent = {
    canHandle(handlerInput) {
        return handlerInput.requestEnvelope.request.type === 'IntentRequest'
            && handlerInput.requestEnvelope.request.intent.name === 'AMAZON.PauseIntent';
    },
    handle(handlerInput) {
            return handlerInput.responseBuilder
                .speak("Pausing ")
                .addDirective({
                    type: 'Alexa.Presentation.APL.ExecuteCommands',
                    token: "VideoPlayerToken",
                    commands: [
                        {
                            type: "ControlMedia",
                            componentId: "myVideoPlayer",
                            command: "pause"
                        }
                    ]
                })
                .getResponse();
    },
};
const ResumeIntent = {
    canHandle(handlerInput) {
        return handlerInput.requestEnvelope.request.type === 'IntentRequest'
            && handlerInput.requestEnvelope.request.intent.name === 'AMAZON.ResumeIntent';
    },
    async handle(handlerInput) {
            return handlerInput.responseBuilder
                .speak("Resuming ")
                .addDirective({
                    type: 'Alexa.Presentation.APL.ExecuteCommands',
                    token: "VideoPlayerToken",
                    commands: [
                        {
                            type: "ControlMedia",
                            componentId: "myVideoPlayer",
                            command: "play"
                        }
                    ]
                })
                .getResponse();
        }
    },
};
alexa skills kitecho showapl
1 comment
10 |5000

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

Hi,

thanks for your patience.

The issue has been resolved, please leave your device idling for a few hours in order to receive the update and try again.

Kind regards,
Gaetano

0 Likes 0 ·

1 Answer

Gaetano@Amazon avatar image
Gaetano@Amazon answered

Hi,

thanks for reporting this.

The issue has been escalated to our internal team that is working on a resolution. I will update this thread when a fix will be released.

I wish you a great day.

Kind regards,
Gaetano

10 |5000

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.