Проблема со статусом СМИ - PullRequest
0 голосов
/ 23 июня 2019

Я разработал Action для Google Assistant, это простой рассказчик.Он работал довольно хорошо, пока несколько дней назад (ну, на самом деле, я не могу сказать, когда проблема началась).По сути, так как истории дольше 3 минут, я разделил историю на два файла mp3.После первого файла пользователя спрашивают, хочет ли он продолжать слушать историю.Если пользователь говорит «Да», воспроизводится второй файл .mp3.Для этого я использовал элемент управления MediaStatus.Этот контроль проверяет, воспроизводятся ли mp3, если нет, он проверяет, есть ли вторая часть для текущей истории, и если она есть, он спрашивает пользователя, хочет ли он слушать ее.На этом этапе отслеживание статуса мультимедиа будет прослушивать ответ пользователя, если пользователь говорит «Да», он воспроизводит историю.

Как уже говорилось, это работало несколько дней назад, но теперь я заметил, что когдапользователь говорит «Да», начинается вторая часть истории, но сразу же воспроизводится также сообщение «до свидания» о том, что оно должно быть воспроизведено ПОСЛЕ конца mp3-файла.Кажется, что если контроль состояния медиа, он снова срабатывает, и он не понимает, что mp3 играет и отвечает с прощальным сообщением.

Я не знаю, смог ли я быть яснымоб этой проблеме.

Я пытался отслеживать, что происходит с симулятором, но в этом случае все работает просто отлично.Или я должен сказать «почти нормально», так как прикрепленный к текстовому сообщению на экране (он не читается голосом), есть сообщение, которое говорит, что «произошла ошибка», но это не останавливает действие, чтобы работать иповедение (по крайней мере, в симуляторе) соответствует ожиданиям.

Я ожидал, что эта последовательность: 1) История (mp3) начинается.2) Когда mp3 останавливается, если есть вторая часть, пользователя спрашивают, хочет ли он его слушать. 3) Если пользователь говорит «Да», вторая часть воспроизводится, в конце этого mp3-файла появляется"до свидания" msg

Вместо этого у меня есть эта последовательность 1) История (mp3) начинается.2) Когда mp3 останавливается, если есть вторая часть, пользователя спрашивают, хочет ли он его слушать. 3) Когда пользователь говорит «Да», вторая часть воспроизводится , но , воспроизводится сообщение до свидания.также, через несколько секунд, и действие прекращается, даже если mp3 продолжает воспроизводиться.

app.intent('Media Status', (conv) => {
const mediaStatus = conv.arguments.get('MEDIA_STATUS');
if (mediaStatus && mediaStatus.status === 'FINISHED') {
    console.log(`track finished: ${conv.user.storage.track}`);
    console.log(`storia2: ${conv.data.storia2}`);
    if (conv.data.storia2 !== undefined) {
        secondaParte =  `<audio src="` + randomPhrase(continuaFavola) + `">  <desc>Vediamo come va a finire...</desc>  Vuoi sapere come andrà a finire? </audio>`;
        storia = conv.data.storia2;
        conv.data.storia2 = undefined;
        conv.ask(new SimpleResponse('<speak>' + secondaParte +'</speak>'));
        return;
    }  else {
        var cinquestelle = `<audio src="` + randomPhrase(stellebreve) + `"><desc> ...e ricorda di lasciare una buona recensione!!!</desc> Grazie</audio>`;
        if ((date < 19) && (date > 5))  {
            goodnight = `<audio src="` + randomPhrase(finestoriaMsg) + `"><desc>...ci vediamo la prossima volta!!</desc>Ciao</audio>`;
        } else {
            goodnight =  `<audio src="` + randomPhrase(buonaNotte) + `"><desc>...e adesso Buonanotte!!</desc>Buona notte</audio>`; 
        }
        conv.close(new SimpleResponse('<speak>' + goodnight + cinquestelle +'</speak>'));
    } 
} else {
    conv.ask(new SimpleResponse('Mi fermo.'));
}

});

app.intent ('Media Status - yes', (conv) => {conv.ask (новый SimpleResponse (<speak> Ecco la conclusione della storia...</speak>)); conv.ask (новые предложения (['Buona notte!'])); conv.ask (новый MediaObject ({name: title, url: storia), описание: autore, изображение: новое изображение ({url: largeImageUrl, alt: title,}),}));});

...