Я написал умение Alexa, которое использует функцию Lambda для воспроизведения уникального звука с заданного URL-адреса.Аудиопроигрыватель «PlaybackNearlyFinished» Запрос комплекта Alexa Skills, не работает
Намерение, называемое «PlayAudio», работает и воспроизводит первый аудиоматериал из нашего API-интерфейса, отформатированного в формате JSON.
Намерение "PlaybackNearlyFinished" не работает, он же не воспроизводит аудиофайл, который я его кормлю. Кто-нибудь может понять, почему это не работает?
Вот раздел из моей лямбда-функции, которая содержит два Intents:
Fact.prototype.intentHandlers = {
"PlayAudio": function (event, context, response) {
fetchEnseParse("/latest", function(body) {
if(body == "error") {
}
else {
var directives = body.enses.map(function(ense) {
var a = ense[1].fileUrl;
return {
'playBehavior': 'REPLACE_ALL',
'audioItem':
{
'stream':
{
'url': 'https://s3.amazonaws.com/media.ense.nyc/enses/2017_01_13T16_57_20.190Z/30312/0',
'token': '33529',
'offsetInMilliseconds': 0
}
},
'type': 'AudioPlayer.Play'
};
})
}
var jsonresponse = {
'outputSpeech': {
'text': '',
'type': 'PlainText'
},
'directives': [directives[0]]
};
response.justUseThisJsonPlease({ response: jsonresponse });
});
},
"AudioPlayer.PlaybackNearlyFinished" : function(event, context, response) {
var second =
{
"type": "AudioPlayer.Play",
"playBehavior": "REPLACE_ENQUEUED",
"audioItem": {
"stream": {
"url": "https://s3.amazonaws.com/media.ense.nyc/enses/violetindigoviolet/30034/0",
"token": "33530",
"offsetInMilliseconds": 0
}
}
}
response.justUseThisJsonPlease({ response: second });
},
Hi John. Я ценю вашу помощь. Я использую outputSpeech в «PlayAudio» Intent, но я не использую его, когда обрабатываю запрос «PlaybackNearlyFinished». Поэтому я не думаю, что это проблема. – Ingrid
Хм .... ну, я не думаю, что проблема REPLACE_ALL является причиной проблемы, но вы решили использовать ENQUEUE вместо этого? Вам также нужно будет включить ожидаемыйPreviousToken, затем как часть объекта потока. Это заставит поток играть дальше, а не останавливать текущий поток и запускать новый. Кроме того, вы получаете сообщение об ошибке от Alexa, например SystemExceptionEncountered? Это должно содержать больше информации. –
Хм ... и на самом деле, глядя на него снова, вы завершаете свой второй ответ в массиве директив? Похоже, что это может быть проблемой. –