Search code examples
actions-on-google

Google assistant media player goes away on pause


BRIEF :

I have created Google assistant application that plays music using Google Action Builder. On specific command, it triggers a webhook. Webhook contains MediaResponse OR Media from '@assistant/conversation' Library and the code is following

conv.add(new Media({
        mediaType: 'AUDIO',
        start_offset: `3.000000001s`,
        mediaObjects: [{
            name: music,
            description: 'This is example of code ',
            url: `https://example.com`,
            image: {
                large: {
                    url: 'https://example.com'
                },
            }
        }]
    }));

It is running well on android and the emulator .

ISSUE :

  • When I pause the music (USING PAUSE BUTTON), the Media player goes away.

  • What should I do to keep the media player so that I can resume the music?

Any information regarding this would be appreciated & Thanks in advance.

EDITED: It works well for showing media player and plays music but if you click pause button it goes away for both above devices(Android/Test Emulator).


Solution

  • Just adding acknowledgment to it fixed the issue.

    app.handle('media_status', (conv) => {
        const mediaStatus = conv.intent.params.MEDIA_STATUS.resolved;
        switch (mediaStatus) {
            case 'FINISHED':
                conv.add('Media has finished playing.');
                break;
            case 'FAILED':
                conv.add('Media has failed.');
                break;
            case 'PAUSED' || 'STOPPED':
                if (conv.request.context) {
                    // Persist the media progress value
                    const progress = conv.request.context.media.progress;
                }
                // Acknowledge pause/stop
                conv.add(new Media({
                    mediaType: 'MEDIA_STATUS_ACK'
                }));
                break;
            default:
                conv.add('Unknown media status received.');
        }
    });