Медиаплеер хорошо играет в Google Assistant, а симулятор не - PullRequest
0 голосов
/ 14 ноября 2018

Я реализовал простой медиаплеер в AOG с помощью MediaResponse

Медиа-плеер может правильно воспроизводить обе стороны:

  • Действия наGoogle simulator

  • Google Assistant на мобильном телефоне

Затем

В то время как он способен выполнять эти функции наGoogle Assistant:

  • Воспроизведение

  • Пауза

  • Стоп

  • Резюме

Simulator не может этого сделать (как изображение, он всегда спрашивает меня снова)

Интересно, почему?

Люди, которые знают, помогите мне объяснить?

p / s:

И в чем разница между pause и stop?

В Google Assistant я увидел, что они имеют одинаковую функцию, это означает stop полностью аналогично pause.

enter image description here

enter image description here

MediaPlayerUtils.js

// Library
const {
MediaObject,
MediaResponse,
SimpleResponse,
Suggestions
} = require('actions-on-google');

class MediaPlayerUtils {

getMediaResponse(song) {
    // This object used to play Media on Google Home
    var mediaResponse = new MediaResponse();
    mediaResponse.mediaType = "AUDIO";

    var mediaObject = new MediaObject({
        url: ""
    });

    mediaObject.name = song.title;
    mediaObject.contentUrl = song.url;

    mediaResponse.mediaObjects = [];
    mediaResponse.mediaObjects.push(mediaObject);

    var Media = require('../model/data/Media');

    // Media Response : Play audio
    return new Media(song, mediaResponse);
}

playSong(conv, song) {
    var media = require('../model/data/Media');
    media = this.getMediaResponse(song);

    console.log("playSong() " + song.title + " " + song.url);

    // Media Response : Play audio
    conv.ask(new SimpleResponse(" ")); // Able to set song title before playing song in here
    conv.ask(media.mediaResponse);
    conv.ask(new Suggestions(
        "next",
        "back",
        "previous",
        "play",
        "pause",
        "resume",
        "stop"));
    conv.ask(new SimpleResponse(""));
};

}

module.exports = MediaPlayerUtils;

rout.js

'use strict';


const {
dialogflow
} = require('actions-on-google');

const assistant = dialogflow({ debug: true });

const MediaPlayerUtils = require('./util/MediaPlayerUtils');
const mediaPlayer = new MediaPlayerUtils();

module.exports = function (app) {

assistant.intent('Default Fallback Intent', (conv) => {
    conv.close("Goodbye");
});

assistant.intent('Default Welcome Intent', (conv) => {
    var song = {
        title: "Test",
        url: "https://TEST_URL.mp3"
    };

    console.log("Default Welcome Intent");

    mediaPlayer.playSong(conv, song);
});

module.exports.googleHomeActions = assistant;

app.post('/webhook', assistant);
};

Media.js

var Media = function (song, mediaResponse) {
this.song = song;
this.mediaResponse = mediaResponse;
}

module.exports = Media;

1 Ответ

0 голосов
/ 16 ноября 2018

Коды правильные.

Но в настоящее время, как сказали в Документах: Медиа-ответы поддерживаются на телефонах Android и в Google Home

...