Я пишу навык для использования на Amazon Fire TV Cube .Умение имеет простые команды.Например, « Alexa, попросите Cinema (название навыка) установить громкость 50 ».Обработчик умений отправляет простую команду HTTP GET
на сервер и возвращает простой ответ .speak « установка громкости на 50 ».
Моя проблема заключается в том, что он также отображает карту сИмя умения, которое остается на несколько секунд.В основном это говорит: « Cinema (название навыка). Чтобы выйти, попробуйте« Alexa, выход. ». Очевидно, что если я смотрю фильм, это раздражает. Я смотрел всюду в документации Alexa, но это только говориткак настраивать и писать более приятные карты, но не как не отображать что-либо.
Мой вопрос заключается в том, есть ли что-то для вызова другого метода или других параметров для ResponseBuilder
, чтобы он только говорил и не говорилпоказать что-либо.
Это код обработчика навыка:
const SetVolumeIntentHandler = {
canHandle(handlerInput) {
return handlerInput.requestEnvelope.request.type === 'IntentRequest'
&& handlerInput.requestEnvelope.request.intent.name === 'SetVolumeIntent';
},
handle(handlerInput) {
const my_vol = handlerInput.requestEnvelope.request.intent.slots.volume.value;
const speechText = 'setting volume to ' + my_vol;
httpGet(my_ip, my_port, '/process_command?command=set_volume&volume=' + my_vol, (theResult) => {});
return handlerInput.responseBuilder
.speak(speechText)
.getResponse();
}
};
httpGet - это функция, которая выполняет то, на что это похоже. Обратите внимание, что она выполняет свою работу (громкость меняется). Мойпроблема просто в том, как остановить отображение чего-либо и просто выполнить работу в фоновом режиме.
Это вывод JSON, который я получаю в тестовой среде Alexa:
{
"body": {
"version": "1.0",
"response": {
"outputSpeech": {
"type": "SSML",
"ssml": "<speak>setting volume to 50</speak>"
},
"type": "_DEFAULT_RESPONSE"
},
"sessionAttributes": {},
"userAgent": "ask-node/2.3.0 Node/v8.10.0"
}
}
Любая помощьбудет высоко ценится.