I have an action that automatically loops on a collection of shorts audio tracks (each about 30 secs). The action (same action, same code) on Google Assistant app executed on real smartphone works well, but on Google Home devices it has a strange behavior:
first track plays entirely
second track stops playing after 1 sec
third track plays entirely
fourth track stops playing after 1 sec
and so on, alternately one track plays entirely and the next one not. So, is there any difference between the MediaObject on smartphone and the Google Home one? Any hints, please? Thanks
UPDATE sept 2019: The behavior of the Home device got worse over the last week (without changes to the active code): now the first track plays completely, the second stops after a second, the third doesn't sound at all and the loop stops (crashes?).
SAMPLE CODE:
-> The next track automatically plays at receiving MEDIA_STATUS = FINISHED
app.intent('Media Status', (conv) => {
const mediaStatus = conv.arguments.get('MEDIA_STATUS');
if (mediaStatus && mediaStatus.status === 'FINISHED') {
// Automatically start playing the next track
nextTrackPower(conv, true, false, datapower);
} else {
console.log('Unknown media status received.');
conv.close(getRandomPrompt(conv, 'error'));
}
});
-> Then I emit three ask command from nextTrackPower() function (an intro text, in the middle the right MediaObject, finally some suggestion chips)
const nextTrackPower = (conv, intro, backwards, datapower) => {
// Loops the tracks
--- OMITTED ---
// Plays the next track
trackpower = datapower[conv.user.storage.trackpower - 1];
// Add a prompt intro
if (intro) {
conv.ask(nextPrompt);
}
// Create a media response
conv.ask(new MediaObject({
name: trackpower.title,
url: POWER_BASE_URL + trackpower.clip,
description: trackpower.artist,
icon: new Image({
url: POWER_BASE_URL + trackpower.link,
alt: 'Media icon'
})
}));
// Add suggestions to continue the conversation
conv.ask(suggestions1 );
};