as

Settings
Sign out
Notifications
Alexa
亚马逊应用商店
Ring
AWS
文档
Support
Contact Us
My Cases
开发
测试
应用发布
盈利
用户参与
设备规格
资源

用于频道导航的GetPlayableItems指令 (VSK Echo Show)

用于频道导航的GetPlayableItems指令 (VSK Echo Show)

当用户说出要更改频道的表示(例如“Watch PBS”(观看PBS))时,VideoContentProvider API会向您的Lambda发送GetPlayableItems指令,其中包含有关需要播放的频道的信息。

来自您的Lambda的预期响应是GetPlayableItemsResponse,如下图所示。

GetPlayableItems指令和Lambda GetPlayableItemsResponse

GetPlayableItems(频道导航)的表述

当用户说出以下频道变更表述时,Alexa会向您的Lambda发送GetPlayableItems指令。它与常规的GetPlayableItems指令类似,但具有特定于频道的属性。

功能 表述示例 预期回应
转到频道名称
需要认证

Go to fox

视图切换到频道名称,播放频道中的内容。

转到频道号
需要认证

Go to channel thirteen

视图切换到频道号,播放频道中的内容。

转到频道呼叫信号
需要认证

Go to channel k. c. p. q.

视图切换到频道呼号,播放频道中的内容。

按频道名称观看
需要认证

Watch fox

视图切换到频道名称,播放频道中的内容。

按频道号观看
需要认证

Watch channel thirteen

视图切换到频道号,播放频道中的内容。

功能 表述示例 预期回应
转到频道名称
需要认证

Va sur [ChannelName]

视图切换到频道名称,播放频道中的内容。

转到频道号
需要认证

va sur [ChannelNumber]

视图切换到频道号,播放频道中的内容。

转到频道呼叫信号
需要认证

cambia canal a t. p. d.

视图切换到频道呼号,播放频道中的内容。

按频道名称观看
需要认证

mets [ChannelName]

joue [ChannelName]

视图切换到频道名称,播放频道中的内容。

按频道号观看
需要认证

mets la chaîne[ChannelNumber]

joue la chaîne[ChannelNumber]

视图切换到频道号,播放频道中的内容。

功能 表述示例 预期回应
转到频道名称
需要认证

Va sur [ChannelName]

视图切换到频道名称,播放频道中的内容。

转到频道号
需要认证

va sur [ChannelNumber]

视图切换到频道号,播放频道中的内容。

转到频道呼叫信号
需要认证

va sur [channel]

视图切换到频道呼号,播放频道中的内容。

按频道名称观看
需要认证

mets [ChannelName]

joue [ChannelName]

视图切换到频道名称,播放频道中的内容。

按频道号观看
需要认证

mets la chaîne[ChannelNumber]

joue la chaîne[ChannelNumber]

视图切换到频道号,播放频道中的内容。

功能 表述示例 预期回应
转到频道名称
需要认证

(schalt auf|geh zu) [ChannelName]

schalt kanal [ChannelName] ein

(geh|schalt|wechsel|änder) zum kanal [ChannelName]

(geh|schalt|wechsel|änder) zu [ChannelName] kanal

(wechsel|änder) den kanal zu [ChannelName]

(wechsel|änder) den kanal zu [ChannelName] auf [AppName]

schalt [ChannelName] auf [AppName] an

schalt kanal [ChannelName] auf [AppName] an

(geh|schalte|wechsel) zu [ChannelName] auf [AppName]

(stell|schalt) [ChannelName] ein auf [AppName]

(stell|schalt|wechsel) (um zu|auf) [ChannelName] auf [AppName]

schalt kanal [ChannelName] auf [AppName] an

mach [ChannelName] auf [AppName] an

视图切换到频道名称,播放频道中的内容。

转到频道号
需要认证

schalt kanal [ChannelNumber] ein

(geh|schalt|wechsel|änder) zum kanal [ChannelNumber]

(geh|schalt|wechsel|änder) zu [ChannelNumber] kanal

(wechsel|änder) den kanal zu [ChannelNumber]

(wechsel|änder) den kanal zu [ChannelNumber] auf [AppName]

schalt [ChannelNumber] auf [AppName] an

schalt kanal [ChannelNumber] auf [AppName] an

(geh|schalte|wechsel) zu [ChannelNumber] auf [AppName]

(stell|schalt) [ChannelNumber] ein auf [AppName]

(stell|schalt|wechsel) (um zu|auf) [ChannelNumber] auf [AppName]

schalt kanal [ChannelNumber] auf [AppName] an

mach [ChannelNumber] auf [AppName] an

kanal [ChannelNumber]

视图切换到频道号,播放频道中的内容。

转到频道呼叫信号
需要认证

schalte/änder/geh zu/auf den fernsehsender [ChannelName]

geh zum (fernseh)kanal [ChannelName]

ändern den (fernseh)kanal zu/auf [ChannelName]

视图切换到频道呼号,播放频道中的内容。

按频道名称观看
需要认证

[ChannelName] auf [AppName] ansehen

spiel den kanal [ChannelName] ab

视图切换到频道名称,播放频道中的内容。

按频道号观看
需要认证

Zeige Kanal/Sender [channel number]

Kanal/Sender [channel number] anschauen

视图切换到频道号,播放频道中的内容。

功能 表述示例 预期回应
转到频道名称
需要认证

fox पर/पे जाओ/जाइए/जाना/चलो/चलना

视图切换到频道名称,播放频道中的内容。

转到频道号
需要认证

channel दस पर/पे जाओ/जाना/जाइए/चलो/चलना

视图切换到频道号,播放频道中的内容。

转到频道呼叫信号
需要认证

channel sony पर/पे जाओ/जाना/जाइए/चलो/चलना

视图切换到频道呼号,播放频道中的内容。

按频道名称观看
需要认证

fox देखो/देखिए/देखना/देखें

视图切换到频道名称,播放频道中的内容。

按频道号观看
需要认证

channel बारह देखो/देखना/देखिए/देखें

视图切换到频道号,播放频道中的内容。

功能 表述示例 预期回应
转到频道名称
需要认证

vai su [ChannelName]

vai a [ChannelName]

视图切换到频道名称,播放频道中的内容。

转到频道号
需要认证

vai al [ChannelNumber]

vai su [ChannelNumber]

视图切换到频道号,播放频道中的内容。

转到频道呼叫信号
需要认证

vai su [Channel]

vai a [Channel]

视图切换到频道呼号,播放频道中的内容。

按频道名称观看
需要认证

guarda [ChannelName]

fammi vedere [ChannelName]

视图切换到频道名称,播放频道中的内容。

按频道号观看
需要认证

metti [ChannelNumber]

视图切换到频道号,播放频道中的内容。

功能 表述示例 预期回应
转到频道名称
需要认证

[ChannelName]を検索

视图切换到频道名称,播放频道中的内容。

转到频道号
需要认证

视图切换到频道号,播放频道中的内容。

转到频道呼叫信号
需要认证

视图切换到频道呼号,播放频道中的内容。

按频道名称观看
需要认证

[ChannelName]を見せて

视图切换到频道名称,播放频道中的内容。

按频道号观看
需要认证

チャンネル[ChannelNumber]を見せて

视图切换到频道号,播放频道中的内容。

功能 表述示例 预期回应
转到频道名称
需要认证

vá/vai/ir para o canal [ChannelName]

视图切换到频道名称,播放频道中的内容。

转到频道号
需要认证

视图切换到频道号,播放频道中的内容。

转到频道呼叫信号
需要认证

vá para o canal [CallSign]

视图切换到频道呼号,播放频道中的内容。

按频道名称观看
需要认证

assistir/assiste/assista [ChannelName]Assistir/assiste/assistao [ChannelName]

视图切换到频道名称,播放频道中的内容。

按频道号观看
需要认证

assitir canal [ChannelNumber]

视图切换到频道号,播放频道中的内容。

功能 表述示例 预期回应
转到频道名称
需要认证

cambia a antena tres

视图切换到频道名称,播放频道中的内容。

转到频道号
需要认证

cambia el canal a la dos

视图切换到频道号,播放频道中的内容。

转到频道呼叫信号
需要认证

cambia canal a t. p. d.

视图切换到频道呼号,播放频道中的内容。

按频道名称观看
需要认证

ver la sexta

pon la sexta

视图切换到频道名称,播放频道中的内容。

按频道号观看
需要认证

pon canal dos

视图切换到频道号,播放频道中的内容。

请注意,在频道方面,这里的多模式设备实现与Fire TV应用不同。对于Fire TV应用,有单独的频道导航指令 (ChangeChannel),而多模式实现则使用GetPlayableItems来处理播放表述和频道导航表述,但具有不同的属性。

GetPlayableItems示例(频道导航)

以下是特定频道的GetPlayableItems指令的示例。payload具有频道场景独有的字段。

{
    "directive": {
        "header": {
            "correlationToken": "dFMb0z+PgpgdDmluhJ1LddFvSqZ/jCc8ptlAKulUj90jSqg==",
            "messageId": "9f4803ec-4c94-4fdf-89c2-d502d5e52bb4",
            "name": "GetPlayableItems",
            "namespace": "Alexa.VideoContentProvider",
            "payloadVersion": "3"
        },
        "endpoint": {
            "scope": {
                "type": "BearerToken",
                "token": "access-token-from-skill"
            },
            "endpointId": "videoDevice-001",
            "cookie": {

            }
        },
        "payload": {
            "entities": [
                {
                    "type": "Channel",
                    "value": "PBS",
                    "externalIds": {
                        "imdb": "tt4574334"
                    },
                    "entityMetadata": {
                        "channelCallSign": "KBTC",
                        "channelNumber": "123"
                    }
                }
            ],
            "contentType": "RECORDING",
            "locale": "en-US",
            "minResultLimit": 8,
            "maxResultLimit": 25,
            "timeWindow": {
                "start": "2016-09-01T00:00:00+00:00",
                "end": "2016-09-07T23:59:00+00:00"
            }
        }
    }
}

请注意,entities(具有"type": "Channel")包含电视频道的信息。

有效负载描述

下面的表格描述了GetPlayableItems指令的payload

有效负载描述
字段 描述 数据类型
entities
必需

要搜索的实体对象的列表。不同实体类型之间的关系通常应解释为AND运算。例如,如果请求包含{genreName = "Comedy," actorName ="Tom Hanks"},则意味着搜索结果应包含Tom Hanks演出的喜剧电影/电视节目。

但是,如果请求包含多个相同类型的实体,例如{videoName = "Interstellar," VideoName = "Interstellar Wars"},则可以将其视为OR运算,并且可以搜索指令中的所有实体。如果有疑问,请假设该类型中的顶部实体(在本例中为videoName)最为相关。

假设您还有另一个请求,其中包含{mediaType = "MOVIE', genreName = "Comedy," actorName ="Tom Hanks," actorName = "Tom Hanks}。对此假设有多个演员名叫Tom Hanks。在这种情况下,您可以搜索包含请求中所有演员的电影,然后根据喜剧类型进行筛选以返回所有搜索结果。

Alexa现在不对实体进行排名,因为当有多个匹配的实体时,Alexa无法知道用户想要播放的是什么。

entities with a type: Channel)包含电视频道的识别数据。例如:

 {
  "type": "Channel",
  "value": "PBS",
  "externalIds": {
      "imdb": "tt4574334"
  },
  "entityMetadata": {
      "channelCallSign": "KBTC",
      "channelNumber": "123"
  }
} 

列表
type
必需

视频内容的实体类型。有关视频内容实体类型的列表,请参阅实体类型



示例: MediaTypevideoActorGenreFranchiseSeasonEpisode

字符串
value
必需

实体的值。对于频道,为频道的名称。



示例: Interstellar, PBS

字符串
externalIds
可选
此实体的外部标识符映射;key是提供方,valueid

示例key = gtivalue = SH000000012

对象
minResultLimit
必需

此调用中要返回的最小结果数,对于此调用已接受pageToken。如果您返回的值小于minResultLimit字段并附带pageToken来获取更多结果,那么Alexa不会考虑使用pageToken来获取新项目,而只会显示Alexa收到的所有内容。

要考虑使用pageToken来获取更多结果,项目数量必须至少与minResultLimit中的值相匹配。但是,项目数量可以大于minResultLimit,最大值为maxResultLimit。如果项目数量大于maxResultLimit,Alexa会在达到maxResultLimit之后废弃这些项目。



示例: 8

整数
maxResultLimit
必需

对要返回的最大结果数的限制。有关更多详细信息,请参阅minResultLimit字段的描述。



示例: 25

整数
timeWindow
可选

提供请求应采用的开始和结束时间。这通常仅用于直播TV或录像,不用于点播内容。通常,如果时间窗口可用并且可以用来筛选结果,就应当使用它。

对于仅搜索点播内容的提供方,时间窗口字段通常设置为空且可以忽略。

对于直播TV或录像,如果用户指定时间窗口,例如“Search for TV shows between 4 and 5 pm”(搜索下午4点到5点之间的电视节目)或“Find TV shows recorded last week”(查找上周录制的电视节目),则应根据开始和结束时间(如果有)筛选结果。

根据功能的不同,可以同时存在startend两个字段,也可以存在其中任何一个字段。例如,对于“Search for TV shows between 4 and 5 pm”(搜索下午4点到5点之间的电视节目),这两个字段都存在。对于“Show me TV shows starting at 5 pm”(播放下午5点开始的电视节目),只需填写start字段,而将end留空。

包含startend时间的对象。
start
可选

时间窗口的开始时间。



示例: 2016-09-07T23:59:00+00:002018-01-24T02:30:00Z

ISO 8601格式的字符串。
end
可选

时间窗口的结束时间。



示例: 2016-09-07T23:59:00+00:002018-01-24T02:30:00Z

ISO 8601格式的字符串。
contentType
必需

ContentType指定搜索结果中返回的视频的内容类型。如果发送录制的电影或电视节目,则将contentType设置为RECORDING。如果结果包含有关直播电视节目的信息,则将contentType设置为LIVE。如果结果包含点播内容,则将contentType设置为ON_DEMAND

ContentType还用于向用户呈现提示。例如,当contentTypeLIVE时,Alexa会提供相应提示,例如“这是CBS正在直播的奥斯卡颁奖典礼”。 如果contentTypeRECORDING,Alexa会提供相应提示,例如“这是奥斯卡颁奖典礼”。



示例: RECORDINGLIVEON_DEMAND

枚举
locale
必需

用户的区域设置,应当用于获取搜索结果的可显示信息。格式与网络工作组当前最佳实践47(BCP-47) 中为语言指定的格式相同的区域设置。如果您收到无法识别的区域设置,则默认设置为en-US



示例en-USen-GBde-DE

字符串
imdb
可选

外部IMDB标识符。



示例:tt4574334

字符串
entityMetadata
可选

与频道相关的元数据映射。

对象
channelCallSign(channel)
可选

频道的呼叫信号。



示例: KBTC

字符串
channelNumber(channel)
可选

频道号。



示例: 1234

整数

实体类型

entities对象由一个对象列表组成,每个对象都包含一个type和一个值,以及其他可能的数据,例如外部ID。type值可能包括以下值: ActorAppChannelCharacterDirectorEpisodeEventFranchiseGenreLeagueMediaTypeProductionCompanySeasonSportSportsTeamVideoPopularityRecencyVideoResolution。以下各部分提供了有关每种实体类型的有效负载的详细信息。

Actor

Actor代表视频媒体内容中的演员;例如,Casey Affleck可能包含以下项:

Actor有效负载字段 描述 类型 示例
externalIds 该实体的外部标识符映射。键是提供方,值是ID。 对象
└─ ASIN 该实体的外部ASIN 字符串 B01LTHZVKG
└─ imdb 演员的IMDB标识符。 字符串 tt4034228
uri 映射到演员/女演员的URI URI entity://provider/actor/caseyaffleck
value 演员的姓名 字符串 Casey Affleck

应用

App代表用户在口头上指定的明确应用名称;例如,“Manchester by the Sea on Prime”(Prime上的Manchester by the Sea)可能包含以下项:

App有效负载字段 描述 类型 示例
externalIds 该实体的外部标识符映射。键是提供方,值是ID。 对象
└─ ENTITY_ID 应用列表中的应用标识符。 字符串 amzn1.alexa-ask-target.app.72095
value 应用程序的名称 字符串 Prime Video

频道

Channel代表电视频道的识别数据;例如,“PBS”可能包含以下项:

Channel有效负载字段 描述 类型 示例
externalIds 该实体的外部标识符映射。键是提供方,值是ID。 对象
└─ imdb 外部IMDB标识符 字符串 tt4034228
entityMetadata 与频道相关的元数据映射 对象
└─ channelNumber 频道号 整数 1234
└─ channelCallSign 频道的呼号 字符串 KBTC
uri 频道的URI URI entity://provider/channel/1234
value 频道的名称。 字符串 PBS

Character

视频媒体内容中代表的Character

Character有效负载字段 描述 类型 示例
externalIds 该实体的外部标识符映射。键是提供方,值是ID。 对象
└─ ASIN 此实体的亚马逊标准识别码 (ASIN) 字符串 B00DT55P3K
└─ imdb 角色的IMDB标识符。 字符串 character id
uri 映射到角色的URI URI entity://provider/character/snowwhite
value 角色的名称 字符串 Snow White

Director

Director代表视频媒体内容的导演姓名;例如,“Kenneth Lonergan”可能包含以下项:

Director有效负载字段 描述 类型 示例
externalIds 该实体的外部标识符映射。键是提供方,值是ID。 对象
└─ imdb 外部IMDB标识符 字符串 tt4034228
uri 映射到导演的URI URI entity://provider/director/kennethlonergan
value 导演的姓名 字符串 Kenneth Lonergan

Episode

Episode代表电视节目等连续内容的剧集编号;例如,Transparent的第八集的剧集编号为8。

Episode有效负载字段 描述 类型 示例
value 剧集编号 整数 8

Event

Event是指一种事件;示例包括体育运动、音乐或其他类型的事件。例如,搜索“Football games”(橄榄球比赛)将搜索game事件实体和football体育运动实体。

Event有效负载字段 描述 类型 示例
externalIds 该实体的外部标识符映射。键是提供方,值是ID。 对象
└─ imdb 事件的IMDB标识符。 字符串 tt4034228
uri 映射到事件的URI URI entity://amazon/events/games
value 事件类型的名称 字符串 Games

Franchise

Franchise是一个视频实体,可以代表许多视频实体,例如电影或电视节目。例如,以虚构系列片“Intergalactic Wars”为例,它代表了电影三部曲以及动画和真人电视节目的集合。引入这种实体类型是为了考虑客户的请求,例如“Find Intergalactic Wars movies”(查找Intergalactic Wars电影),它将搜索MediaTypeMOVIE值的所有“Intergalactic Wars”节目,而不是尝试与单个标题进行匹配。

Franchise有效负载字段 描述 类型 示例
externalIds 该实体的外部标识符映射。键是提供方,值是ID。 对象
└─ imdb 外部IMDB标识符 字符串 tt4034228
uri 映射到系列片的URI 映射到事件的URI entity://amazon/franchise/intergalacticwars
value 类型的名称 字符串 Intergalactic Wars

Genre

Genre代表视频媒体内容的类型,例如动作、戏剧或喜剧。例如,Action类型可能包含以下项:

Genre有效负载字段 描述 类型 示例
externalIds 该实体的外部标识符映射。键是提供方,值是ID。 对象
└─ imdb 外部IMDB标识符 字符串 tt4034228
uri 映射到类型的URI URI entity://provider/genre/action
value 类型的名称 字符串 Action

League

League代表体育运动联赛的分类信息;例如,NCAA是一个可能包含以下项的联赛:

League有效负载字段 描述 类型 示例
externalIds 该实体的外部标识符映射。键是提供方,值是ID。 对象
└─ imdb 联赛的IMDB标识符 字符串 tt4034228
uri 映射到联赛的URI URI entity://amazon/league/ncaa
value 联赛的名称 字符串 NCAA

MediaType

MediaType代表特定内容片段的媒体类型类别;例如,“Manchester by the Sea”的MediaType应为MOVIE

MediaType有效负载字段 描述 类型 示例
value 媒体类型;可能的值为MOVIEVIDEOTV_SHOW 枚举 MOVIE

ProductionCompany

ProductionCompany代表视频媒体内容的制作公司名称;例如Marvels、Disney。

ProductionCompany有效负载字段 描述 类型 示例
value 制作公司名称 字符串 Marvel

Season

Season代表电视节目等系列内容的季编号;例如,“Transparent”第二季的季编号应为2。

Season有效负载字段 描述 类型 示例
value 季编号 整数 2

Sport

Sport代表一项体育运动的分类信息;例如,橄榄球是一项可能包含以下项的体育运动:

Sport有效负载字段 描述 类型 示例
externalIds 该实体的外部标识符映射。键是提供方,值是ID。 对象
└─ imdb 体育运动的IMDB标识符 字符串 tt4034228
uri 映射到体育运动的URI URI entity://amazon/sport/football
value 体育运动的名称 字符串 Football

SportsTeam

SportsTeam代表职业运动队的分类信息;例如,“University of Washington Huskies”是一支可能包含以下项的运动队:

SportsTeam有效负载字段 描述 类型 示例
externalIds 该实体的外部标识符映射。键是提供方,值是ID。 对象
└─ imdb 该运动队的IMDB标识符。 字符串 tt4034228
uri 映射到运动队的URI URI entity://amazon/sportsteam/huskies
value 运动队的名称 字符串 University of Washington Huskies

Video

Video代表视频内容片段的识别数据;例如,“Manchester by the Sea”可能包含以下项:

Video有效负载字段 描述 类型 示例
externalIds 该实体的外部标识符映射。键是提供方,值是ID。 对象
ASIN 该实体的外部ASIN 字符串 B01LTHZVKG
└─ imdb IMDB标识符 字符串 tt4034228
userConfirmations 包含有关商品的用户确认信息的对象 对象
└─ entitlementVoiceActivation 通知合作伙伴观看期限或权利的语音启用是否成功的标记。可能的值 - CONFIRMED(可选)。 枚举;默认策略 - 忽略无法识别的值 CONFIRMED
uri 映射到视频的URI URI entity://provider/movie/manchesterbythesea
value 视频的名称 字符串 Manchester by the Sea

Popularity

Popularity表示用户是否要求提供热门内容。

Popularity有效负载字段 描述 类型 示例
value 向提供方指明用户搜索热门内容 字符串 TRUE
请注意,此实体类型不包含任何“externalIds”。示例响应(仅摘自相关值)可能如下所示:``json "entities": [..{ "value": "TRUE", "type": "Popularity" } ..], ```

Recency

Recency的解析值表示用户要求的是新内容还是旧内容。

Recency有效负载字段 描述 类型 示例
value 指明用户搜索的是新内容还是旧内容;可能的值为NEWOLD 枚举 NEW
请注意,此实体类型不包含任何“externalIds”。示例响应(仅摘自相关值)可能如下所示:``json "entities": [..{ "value": "NEW", "type": "Recency" } ..], ```

VideoResolution

VideoResolution代表以下标准之一中要求的视频分辨率:

  • SD (480p)
  • HD (720p-1080p)
  • 4k (2160p)
  • 8k (4320p)
VideoResolution有效负载字段 描述 类型 示例
value 视频分辨率;可能的值为SDHD4k8k 枚举 HD
请注意,此实体类型不包含任何“externalIds”。示例响应(仅摘自相关值)可能如下所示:``json "entities": [..{ "value": "4k", "type": "VideoResolution" } ..], ```

请注意,多模式设备还有以下其他实体类型: LISTTYPESORTTYPE

当用户想要浏览其播放列表或库时,则填写LISTTYPE。例如,诸如“Show me my Watchlist”(显示我的播放列表)或“Show me my Video Library”(显示我的视频库)之类的表述。 LISTTYPE可以有以下枚举值:

  • WATCHLIST: 针对“Show me my Watchlist”(显示我的播放列表)- 用于显示用户添加到播放列表中的视频。
  • LIBRARY: 针对“Show me my Video Library”(显示我的视频库)- 用于显示用户库中的视频。通常,这些是用户购买的视频。

SORTTYPE用于提供有关搜索期间应使用的请求以及需要如何对结果进行排序的更多信息。例如,对于“Show me recommended movies”(显示推荐的电影),Alexa需要内容提供方的推荐。SORTTYPE可以有以下枚举值:

  • RECOMMENDED: 此值是为诸如“Show me recommended movies”(显示推荐的电影)或“Show me recommended action movies”(显示推荐的动作电影)等表述填充的。

体验类型

使用experience对象根据用于执行搜索的设备优化搜索结果的显示。例如,如果客户通过Fire TV遥控器进行搜索,则experience对象会显示大量的搜索结果,客户可以使用遥控器浏览这些结果。但是,如果搜索请求来自与Fire TV配对的Echo,则experience对象会限制显示的结果数量及其显示方式,从而让客户可以无需使用遥控器即可查看结果。

experience对象由一个mode对象组成,后者决定如何显示搜索结果。mode对象采用两个值: VOICE_OPTIMIZED and DEFAULT.

  • VOICE_OPTIMIZED: 针对纯语音设备的搜索结果优化的显示。提供结果列表,客户无需遥控器即可通过语音浏览这些结果。

  • DEFAULT: 所有搜索结果列表格式的默认显示,无论使用哪种设备进行搜索。

为确保向前兼容性,如果在mode中收到未知值,可回退到DEFAULT,而不是遭遇失败。

Lambda响应

收到GetPlayableItems指令后,您的Lambda必须返回一个遵循此处结构的GetPlayableItemsResponse响应。本例中的响应结构类似于为GetDisplayableItems指令返回的响应。

请在响应中遵循以下指导准则: 

  • 请记住,GetPlayableItems指令的目标是获得一个可以为指令播放的项目。 

  • 如果只有一个项目可以播放,您可以仅返回该项目,Alexa将播放该项目。 

  • 如果不清楚该播放哪个项目,您可以选择在响应中返回多个项目。Alexa会要求用户选择要播放的项目。例如,如果用户说“Play Star Wars”(播放Star Wars),则响应中可能会返回Star Wars系列片中的多部电影,或者多部与Star Wars相关的电影和电视节目。如果您返回多个结果,Alexa会发送GetDisplayableItemsMetadata指令来获取元数据并显示搜索结果。请注意,第一次调用中返回的结果数不应超过指令中指定的resultLimit参数。

  • 如果由于用户无权播放作品或需要订阅而导致所找到的唯一结果无法播放,则可以返回该项目。一旦Alexa发现此项目不可播放,Alexa会获取元数据并显示购买、租借或订阅提示。之后,用户可以触发购买工作流程来购买/租借作品,然后再播放它。

  • 如果发现多个无法播放的结果,您可以选择返回所有结果,Alexa要么通过用户消除要播放哪个项目的歧义,要么显示购买、租借或订阅项目的提示。

  • 如果找到多个结果,其中一些可以播放,而有些则不能播放,那么您应该选择可播放的结果并返回可播放的结果,这样就可以在设备上播放相应项目。

响应示例(频道导航)

以下是与频道变更场景相关的GetPlayableItemsResponse示例。

{
    "event": {
        "header": {
            "correlationToken": "dFMb0z+PgpgdDmluhJ1LddFvSqZ/jCc8ptlAKulUj90jSqg==",
            "messageId": "5f0a0546-caad-416f-a617-80cf083a05cd",
            "name": "GetPlayableItemsResponse",
            "namespace": "Alexa.VideoContentProvider",
            "payloadVersion": "3"
        },
        "payload": {
            "nextToken": "fvkjbr20dvjbkwOpqStr",
            "mediaItems": [
                {
                    "mediaIdentifier": {
                        "id": "channelId://provider1.dvr.rp.1234-2345-63434-asdf"
                    }
                }
            ]
        }
    }
}

有效负载描述

下面的表格描述了GetPlayableItemsResponse中的payload字段。

有效负载描述
字段 描述 数据类型
nextToken
可选

用于获取下一组结果的令牌。提供方发送的不透明字符串,该字符串在后续搜索请求中传回。

字符串
mediaItems
必需

屏幕上显示为搜索结果的视频的mediaIdentifiers列表。

列表
mediaIdentifier
必需

mediaItem的标识符。请参阅从mediaIdentifier对象检索图像大小数据

对象
id
必需

视频项目的标识符,用于在后续调用GetDisplayableItemsMetadataGetPlayableItemsMetadata时获取任何与显示或播放相关的元数据信息。此标识符对于Alexa不透明,仅在查询元数据信息时按原样使用。

字符串

Last updated: 2020年11月2日