Alexa技能图像没有显示

时间:2018-02-09 06:09:53

标签: python alexa

我正在写一个简单的技巧,我想要显示一个全屏图像。我在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上运行代码时,它会显示文本但没有图像。我尝试了不同大小的不同图像,但它没有帮助。

5 个答案:

答案 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.使用显示模板