我正在写一个简单的技巧,我想要显示一个全屏图像。我在Alexa skill pages
上找到了一段示例代码def build_speechlet_response(title, output, reprompt_text, should_end_session):
return {
"outputSpeech": {"type":"PlainText","text":"This is your cow!"},
"card": {
"type": "Standard",
"title": "Cow picture",
"text": "This is your cow",
"image": {
"smallImageUrl": "https://s3.amazonaws.com/icepick-alexa/cow.jpg",
"largeImageUrl": "https://s3.amazonaws.com/icepick-alexa/cow.jpg"
}
}
}
我知道我的图像托管是可以的,因为当我使用模板时我可以将图像显示为背景图像..但我只想要它是全屏而不是背景。
此代码在alexa技能在线模拟器中工作正常,我在那里看到图像。但是,当我在Alexa Echo Spot上运行代码时,它会显示文本但没有图像。我尝试了不同大小的不同图像,但它没有帮助。
答案 0 :(得分:1)
我想将此作为评论发布,但无法发布,因为我的声誉不够高。
您在模拟器中看到了图像,因为它的设置模拟了回声秀。您的代码需要根据设备的类型进行优化。查看this了解详情
答案 1 :(得分:1)
如果您正在使用alexa-sdk,则以下代码段可帮助您当场显示全屏图像。如果您不使用sdk,则只能引用此代码段的JSON部分。
const Alexa = require('ask-sdk');
如果使用的是Alexa SDK,则创建图像对象。
const myImage = new Alexa.ImageHelper().withDescription('Image').addImageInstance(IMG_URL_PATH + 'Image.jpg').getImage();
身体模板1的背景像全屏图像一样。
var displayTemplate = {
type: 'BodyTemplate1',
token: 'Your Token',
backButton: 'hidden',
backgroundImage: myImage,
title: '',
textContent: {
primaryText : {
type : 'RichText',
text : '<div align=\'center\'><br/><br/><br/><br/><font size=\'2\'>Some Text</font></div>'
}
}
};
在处理程序中,您可以按以下方式返回响应。
handlerInput.responseBuilder.speak(speechText).addRenderTemplateDirective(displayTemplate).getResponse();
答案 2 :(得分:0)
要使用Alexa技能显示图像,可以使用标准卡作为实现该图像的方法。 https://developer.amazon.com/docs/alexa-voice-service/display-cards-overview.html
答案 3 :(得分:0)
您可以使用任何显示模板来渲染图像以及一些文本。另外,如果您只希望有图像,请使用“卡片”方法。
答案 4 :(得分:0)
您可以使用简单的alexa功能来显示卡片- 1. askWithCard 2. tellWithCard 3.使用显示模板