Alexa.RemoteVideoPlayer接口: SearchAndPlay (VSK Fire TV)
当用户要求Alexa播放特定的视频内容,例如“Watch Bosch”(观看Bosch)或“Watch the Warriors game”(观看Warriors队的比赛)时,Alexa.RemoteVideoPlayer
接口会向您的应用或Lambda发送SearchAndPlay
指令。
概述
SearchAndPlay
指令表明客户已要求Alexa“播放”项目。SearchAndPlay
的结果是播放具体要求的标题或与所请求实体最匹配的标题。如果没有匹配的标题,则改为返回搜索结果。
以下是一些表述示例:
- Alexa, watch title(Alexa,观看 [标题])
- Alexa, play title(Alexa,播放 [标题])
- Alexa, stream title(Alexa,流式播放 [标题])
- Alexa, start title(Alexa,启动 [标题])
SearchAndPlay指令的表述
当用户说出以下表述时,Alexa会向您的应用(用于仅限应用的集成)或您的Lambda(用于云端集成)发送SearchAndPlay
指令。
功能 | 表述示例 | 预期回应 |
---|---|---|
观看 [标题] 需要认证 |
Watch breaking bad |
播放请求的媒体类型。如果内容有多个匹配项,则系统会提示用户选择所需的媒体。 |
按演员观看 需要认证 |
Watch sean connery |
要么播放有演员参演的媒体(通过为用户选择最佳匹配项的算法),要么向用户显示结果列表。 |
按流派名称观看 需要认证 |
Watch comedy |
要么播放所请求流派的媒体(通过为用户选择推荐媒体的算法),要么向用户显示媒体结果列表。 |
按系列片 [标题] 观看 需要认证 |
Watch star trek |
要么播放所请求系列片最为推荐的结果,要么向用户显示匹配的系列片列表。 |
按媒体类型观看 可选 |
Watch a movie |
要么播放与非标题请求匹配的媒体(通过为用户选择推荐视频的算法),要么向用户显示结果列表。 |
通过季编号观看 [标题] 可选 |
Watch breaking bad season two |
如果剧集的观看未完成,则播放该系列中上次观看的剧集。如果已观看完上次观看的剧集,则播放下一集未观看的剧集。 |
通过剧集编号观看 [标题] 可选 |
Watch breaking bad episode five |
通过用户上次观看的剧集来识别正确的剧集。如果剧集的观看未完成,则播放该系列中上次观看的剧集。如果已观看完上次观看的剧集,则播放下一集未观看的剧集。 |
通过季和剧集编号观看 [标题] 可选 |
Watch breaking bad season two episode five |
播放与请求的季和剧集相对应的内容。 |
按角色姓名观看 可选 |
Watch james bond |
要么播放与角色姓名匹配的媒体(通过为用户选择推荐媒体的算法),要么向用户显示媒体结果列表。 |
按运动队观看 可选 |
Watch seahawks |
要么播放与运动队匹配的媒体(通过为用户选择推荐媒体的算法),要么向用户显示媒体结果列表。 |
按体育运动类型观看 可选 |
Watch soccer |
要么播放与体育运动类型匹配的媒体(通过为用户选择推荐媒体的算法),要么向用户显示结果列表。 |
按体育联赛观看 可选 |
Watch n. b. a. league |
要么播放与体育联赛匹配的媒体(通过为用户选择推荐媒体的算法),要么向用户显示结果列表。 |
按体育赛事观看 可选 |
Watch soccer game |
要么播放与体育赛事匹配的媒体(通过为用户选择推荐媒体的算法),要么向用户显示结果列表。 |
功能 | 表述示例 | 预期回应 |
---|---|---|
观看 [标题] 需要认证 |
mets / joue / lance / pars [VideoName] sur [AppName] |
播放请求的媒体类型。如果内容有多个匹配项,则系统会提示用户选择所需的媒体。 |
按演员观看 需要认证 |
regarde un film avec [actor] mets un film avec [actor] joue un film avec [actor] pars un film avec [actor] |
要么播放有演员参演的媒体(通过为用户选择最佳匹配项的算法),要么向用户显示结果列表。 |
按流派名称观看 需要认证 |
regarder un [GenreName] regarder une [GenreName] mets un [GenreName] mets une [GenreName] joue un [GenreName] joue une [GenreName |
要么播放所请求流派的媒体(通过为用户选择推荐媒体的算法),要么向用户显示媒体结果列表。 |
按系列片 [标题] 观看 需要认证 |
regarde [title] mets [title] joue [title] pars [title] |
要么播放所请求系列片最为推荐的结果,要么向用户显示匹配的系列片列表。 |
按媒体类型观看 可选 |
regarde un film mets un film joue un film pars un film |
要么播放与非标题请求匹配的媒体(通过为用户选择推荐视频的算法),要么向用户显示结果列表。 |
通过季编号观看 [标题] 可选 |
regarde la saison [x] de [title] mets la saison [x] de [title] joue la saison [x] de [title] pars la saison [x] de [title] regarde [title] saison [x] mets [title] saison [x] joue [title] saison [x] pars [title] saison [x] joue la saison [x] de [title] |
如果剧集的观看未完成,则播放该系列中上次观看的剧集。如果已观看完上次观看的剧集,则播放下一集未观看的剧集。 |
通过剧集编号观看 [标题] 可选 |
regarde l'épisode [x] de [title] mets l'épisode [x] de [title] joue l'épisode [x] de [title] pars l'épisode [x] de [title] joue [title] épisode [x] mets [title] épisode [x] |
通过用户上次观看的剧集来识别正确的剧集。如果剧集的观看未完成,则播放该系列中上次观看的剧集。如果已观看完上次观看的剧集,则播放下一集未观看的剧集。 |
通过季和剧集编号观看 [标题] 可选 |
Same as fr-FR |
播放与请求的季和剧集相对应的内容。 |
按角色姓名观看 可选 |
Not supported |
要么播放与角色姓名匹配的媒体(通过为用户选择推荐媒体的算法),要么向用户显示媒体结果列表。 |
按运动队观看 可选 |
Regarde le [team] Regarde le match de [team] |
要么播放与运动队匹配的媒体(通过为用户选择推荐媒体的算法),要么向用户显示媒体结果列表。 |
按体育运动类型观看 可选 |
Not supported |
要么播放与体育运动类型匹配的媒体(通过为用户选择推荐媒体的算法),要么向用户显示结果列表。 |
按体育联赛观看 可选 |
Mets [league] Joue [league] Regarde [league] |
要么播放与体育联赛匹配的媒体(通过为用户选择推荐媒体的算法),要么向用户显示结果列表。 |
按体育赛事观看 可选 |
Not supported |
要么播放与体育赛事匹配的媒体(通过为用户选择推荐媒体的算法),要么向用户显示结果列表。 |
功能 | 表述示例 | 预期回应 |
---|---|---|
观看 [标题] 需要认证 |
mets / joue / lance [VideoName] sur [AppName] |
播放请求的媒体类型。如果内容有多个匹配项,则系统会提示用户选择所需的媒体。 |
按演员观看 需要认证 |
regarde un film avec [actor] mets un film avec [actor] joue un film avec [actor] |
要么播放有演员参演的媒体(通过为用户选择最佳匹配项的算法),要么向用户显示结果列表。 |
按流派名称观看 需要认证 |
regarder un [GenreName] regarder une [GenreName] mets un [GenreName] mets une [GenreName] joue un [GenreName] joue une [GenreName |
要么播放所请求流派的媒体(通过为用户选择推荐媒体的算法),要么向用户显示媒体结果列表。 |
按系列片 [标题] 观看 需要认证 |
Regarde [title] Mets [title] Joue [title] |
要么播放所请求系列片最为推荐的结果,要么向用户显示匹配的系列片列表。 |
按媒体类型观看 可选 |
regarde un film mets un film joue un film |
要么播放与非标题请求匹配的媒体(通过为用户选择推荐视频的算法),要么向用户显示结果列表。 |
通过季编号观看 [标题] 可选 |
Regarde la saison [x] de [title] Mets la saison [x] de [title] Regarde [title] saison [x] Mets [title] saison [x] Joue [title] saison [x] Joue la saison [x] de [title] |
如果剧集的观看未完成,则播放该系列中上次观看的剧集。如果已观看完上次观看的剧集,则播放下一集未观看的剧集。 |
通过剧集编号观看 [标题] 可选 |
Regarde l'épisode [x] de [title] Mets l'épisode [x] de [title] Joue l'épisode [x] de [title] Joue [title] épisode [x] |
通过用户上次观看的剧集来识别正确的剧集。如果剧集的观看未完成,则播放该系列中上次观看的剧集。如果已观看完上次观看的剧集,则播放下一集未观看的剧集。 |
通过季和剧集编号观看 [标题] 可选 |
Regarde l'épisode [x] de la saison [x] de [title] Joue l'épisode [x] de la saison [x] de [title] Mets l'épisode [x] de la saison [x] de [title] |
播放与请求的季和剧集相对应的内容。 |
按角色姓名观看 可选 |
Not supported |
要么播放与角色姓名匹配的媒体(通过为用户选择推荐媒体的算法),要么向用户显示媒体结果列表。 |
按运动队观看 可选 |
Regarde le [team] Regarde le match de [team] |
要么播放与运动队匹配的媒体(通过为用户选择推荐媒体的算法),要么向用户显示媒体结果列表。 |
按体育运动类型观看 可选 |
Not supported |
要么播放与体育运动类型匹配的媒体(通过为用户选择推荐媒体的算法),要么向用户显示结果列表。 |
按体育联赛观看 可选 |
Mets [league] Joue [league] Regarde [league] |
要么播放与体育联赛匹配的媒体(通过为用户选择推荐媒体的算法),要么向用户显示结果列表。 |
按体育赛事观看 可选 |
Not supported |
要么播放与体育赛事匹配的媒体(通过为用户选择推荐媒体的算法),要么向用户显示结果列表。 |
功能 | 表述示例 | 预期回应 |
---|---|---|
观看 [标题] 需要认证 |
ich möchte [VideoName] gucken spiel [VideoName] spiel watchlist ab von [VideoName] |
播放请求的媒体类型。如果内容有多个匹配项,则系统会提示用户选择所需的媒体。 |
按演员观看 需要认证 |
spiel [VideoName] (mit [ActorName]) auf [AppName] streame einen film mit [ActorName] auf [AppName] streame einen [ActorName] film auf [AppName] streame eine serie mit [ActorName] auf [AppName] streame eine [ActorName] serie auf [AppName] |
要么播放有演员参演的媒体(通过为用户选择最佳匹配项的算法),要么向用户显示结果列表。 |
按流派名称观看 需要认证 |
spiel eine [GenreName] [MediaType] auf [DeviceType] ab spiel eine [GenreName] [MediaType] auf [AppName] ab [GenreName] [MediaType] schauen spiel einen [GenreName] [MediaType] |
要么播放所请求流派的媒体(通过为用户选择推荐媒体的算法),要么向用户显示媒体结果列表。 |
按系列片 [标题] 观看 需要认证 |
ich möchte [VideoName] gucken spiel [VideoName] spiel watchlist ab von [VideoName]? |
要么播放所请求系列片最为推荐的结果,要么向用户显示匹配的系列片列表。 |
按媒体类型观看 可选 |
spiel einen [MediaType] spiel [MediaType] aus der/meiner watchlist streame den [MediaType] [VideoName] auf [AppName]/[Device] spiel trailer von [VideoName] spiel die neueste folge von [VideoName] |
要么播放与非标题请求匹配的媒体(通过为用户选择推荐视频的算法),要么向用户显示结果列表。 |
通过季编号观看 [标题] 可选 |
spiel [VideoName] [Season] [Season_Numer] spiel [VideoName] [Season] [Season_Numer] auf [AppName] |
如果剧集的观看未完成,则播放该系列中上次观看的剧集。如果已观看完上次观看的剧集,则播放下一集未观看的剧集。 |
通过剧集编号观看 [标题] 可选 |
spiel die [Episode_Number] [Episode] von [VideoName] spiel [VideoName] [Episode_Number] spiel von [VideoName] [Episode] [Episode_Number] |
通过用户上次观看的剧集来识别正确的剧集。如果剧集的观看未完成,则播放该系列中上次观看的剧集。如果已观看完上次观看的剧集,则播放下一集未观看的剧集。 |
通过季和剧集编号观看 [标题] 可选 |
spiel [Season] [Season_Numer] [Episode] [Episode_Number] von [VideoName] spiel [VideoName] [Season] [Season_Numer] [Episode] [Episode_Number] spiel die [VideoName] [Season] [Season_Numer] [Episode] [Episode_Number] auf [AppName] ab |
播放与请求的季和剧集相对应的内容。 |
按角色姓名观看 可选 |
Not supported |
要么播放与角色姓名匹配的媒体(通过为用户选择推荐媒体的算法),要么向用户显示媒体结果列表。 |
按运动队观看 可选 |
spiel [SportsTeam] [Event] auf [AppName] [SportsTeam] [Event] anschauen/ansehen das [SportsTeam] [Event] auf [AppName] anschauen/ansehen spiel das [SportsTeam] [Event] auf meinem [Device] |
要么播放与运动队匹配的媒体(通过为用户选择推荐媒体的算法),要么向用户显示媒体结果列表。 |
按体育运动类型观看 可选 |
spiel das [Sport] [Event] auf meinem [Device] das [Sport] [Event] ansehen |
要么播放与体育运动类型匹配的媒体(通过为用户选择推荐媒体的算法),要么向用户显示结果列表。 |
按体育联赛观看 可选 |
spiel [SportsTeam] [Event] auf [AppName] [SportsTeam] [Event] anschauen |
要么播放与体育联赛匹配的媒体(通过为用户选择推荐媒体的算法),要么向用户显示结果列表。 |
按体育赛事观看 可选 |
spiel das [Sport] [Event] auf meinem [Device] das [Sport] [Event] ansehen |
要么播放与体育赛事匹配的媒体(通过为用户选择推荐媒体的算法),要么向用户显示结果列表。 |
功能 | 表述示例 | 预期回应 |
---|---|---|
观看 [标题] 需要认证 |
[VideoName] चलाओ/बजाओ/लगाओ/play/देखो [AppName] पे/पर/में [VideoName] चलाओ/बजाओ/लगाओ/play |
播放请求的媒体类型。如果内容有多个匹配项,则系统会提示用户选择所需的媒体。 |
按演员观看 需要认证 |
[ActorName] का/की/के movies को चलाओ/बजाओ/लगाओ/play/देखो [ActorName] का/की/के movies चलाओ/बजाओ/लगाओ/play/देखो [ActorName] का/की/के [GenreName] को चलाओ/बजाओ/लगाओ/play/देखो [ActorName] का/की/के [GenreName] चलाओ/बजाओ/लगाओ/play/देखो [ActorName] का/की/के [VideoName] को चलाओ/बजाओ/लगाओ/play/देखो [ActorName] का/की/के [VideoName] चलाओ/बजाओ/लगाओ/play/देखो [ActorName] का/की/के/वाला [GenreName] की [VideoName] को चलाओ/बजाओ/लगाओ/play/देखो [ActorName] का/की/के/वाला [GenreName] की [VideoName] चलाओ/बजाओ/लगाओ/play/देखो |
要么播放有演员参演的媒体(通过为用户选择最佳匹配项的算法),要么向用户显示结果列表。 |
按流派名称观看 需要认证 |
[GenreName] [VideoName] को चलाओ/बजाओ/लगाओ/play/देखो [GenreName] [VideoName] चलाओ/बजाओ/लगाओ/play/देखो |
要么播放所请求流派的媒体(通过为用户选择推荐媒体的算法),要么向用户显示媒体结果列表。 |
按系列片 [标题] 观看 需要认证 |
star trek देखो/देखना/देखिए |
要么播放所请求系列片最为推荐的结果,要么向用户显示匹配的系列片列表。 |
按媒体类型观看 可选 |
[VideoName] movies चलाओ/बजाओ/लगाओ/play/देखो |
要么播放与非标题请求匹配的媒体(通过为用户选择推荐视频的算法),要么向用户显示结果列表。 |
通过季编号观看 [标题] 可选 |
[VideoName] का/की/के [SeasonNumber] को चलाओ/बजाओ/लगाओ/play/देखो [VideoName] का/की/के [SeasonNumber] चलाओ/बजाओ/लगाओ/play/देखो [VideoName] का/की/के [SeasonNumber] को चलाओ/बजाओ/लगाओ/play/देखो [VideoName] का/की/के [SeasonNumber] [SeasonNumber] चलाओ/बजाओ/लगाओ/play/देखो |
如果剧集的观看未完成,则播放该系列中上次观看的剧集。如果已观看完上次观看的剧集,则播放下一集未观看的剧集。 |
通过剧集编号观看 [标题] 可选 |
[VideoName] का/की/के [EpisodeNumber] को चलाओ/बजाओ/लगाओ/play/देखो [VideoName] का/की/के [EpisodeNumber] चलाओ/बजाओ/लगाओ/play/देखो |
通过用户上次观看的剧集来识别正确的剧集。如果剧集的观看未完成,则播放该系列中上次观看的剧集。如果已观看完上次观看的剧集,则播放下一集未观看的剧集。 |
通过季和剧集编号观看 [标题] 可选 |
[VideoName] season one episode one चलाओ/बजाओ/लगाओ/play करो [VideoName] season एक का episode एक चलाओ/बजाओ/लगाओ/play करो |
播放与请求的季和剧集相对应的内容。 |
按角色姓名观看 可选 |
[CharacterName] का/की/के/वाला movies चलाओ/बजाओ/लगाओ/play/देखो [CharacterName] का/की/के/वाला movies को चलाओ/बजाओ/लगाओ/play/देखो Watch [CharacterName] movie [VideoName] |
要么播放与角色姓名匹配的媒体(通过为用户选择推荐媒体的算法),要么向用户显示媒体结果列表。 |
按运动队观看 可选 |
[Sport/League/Seam] games चलाओ/बजाओ/लगाओ/play/देखो [Sport/League/Seam] के games को चलाओ/बजाओ/लगाओ/play/देखो |
要么播放与运动队匹配的媒体(通过为用户选择推荐媒体的算法),要么向用户显示媒体结果列表。 |
按体育运动类型观看 可选 |
[Sport/League/Seam] games चलाओ/बजाओ/लगाओ/play/देखो [Sport/League/Seam] के games को चलाओ/बजाओ/लगाओ/play/देखो |
要么播放与体育运动类型匹配的媒体(通过为用户选择推荐媒体的算法),要么向用户显示结果列表。 |
按体育联赛观看 可选 |
[Sport/League/Seam] games चलाओ/बजाओ/लगाओ/play/देखो [Sport/League/Seam] के games को चलाओ/बजाओ/लगाओ/play/देखो |
要么播放与体育联赛匹配的媒体(通过为用户选择推荐媒体的算法),要么向用户显示结果列表。 |
按体育赛事观看 可选 |
[Sport/League/Seam] games चलाओ/बजाओ/लगाओ/play/देखो [Sport/League/Seam] के games को चलाओ/बजाओ/लगाओ/play/देखो |
要么播放与体育赛事匹配的媒体(通过为用户选择推荐媒体的算法),要么向用户显示结果列表。 |
功能 | 表述示例 | 预期回应 |
---|---|---|
观看 [标题] 需要认证 |
metti / trasmetti / riproduci / fammi guardare / fammi vedere + [VideoName] (+ da/su [DeviceName]) |
播放请求的媒体类型。如果内容有多个匹配项,则系统会提示用户选择所需的媒体。 |
按演员观看 需要认证 |
guarda un film con [ActorName] metti un film con [ActorName] |
要么播放有演员参演的媒体(通过为用户选择最佳匹配项的算法),要么向用户显示结果列表。 |
按流派名称观看 需要认证 |
guarda una [GenreName] fammi vedere una commedia mostra mi una commedia metti una commedia |
要么播放所请求流派的媒体(通过为用户选择推荐媒体的算法),要么向用户显示媒体结果列表。 |
按系列片 [标题] 观看 需要认证 |
guarda star trek fammi vedere star trek mostra star trek |
要么播放所请求系列片最为推荐的结果,要么向用户显示匹配的系列片列表。 |
按媒体类型观看 可选 |
guarda un film metti un fim trasmetti un film riproduci un film |
要么播放与非标题请求匹配的媒体(通过为用户选择推荐视频的算法),要么向用户显示结果列表。 |
通过季编号观看 [标题] 可选 |
guarda [VideoName] stagione due metti [VideoName] stagione due riproduci [VideoName] stagione due |
如果剧集的观看未完成,则播放该系列中上次观看的剧集。如果已观看完上次观看的剧集,则播放下一集未观看的剧集。 |
通过剧集编号观看 [标题] 可选 |
guarda [VideoName] episodio cinque metti [VideoName] episodio cinque riproduci [VideoName] episodio cinque |
通过用户上次观看的剧集来识别正确的剧集。如果剧集的观看未完成,则播放该系列中上次观看的剧集。如果已观看完上次观看的剧集,则播放下一集未观看的剧集。 |
通过季和剧集编号观看 [标题] 可选 |
guarda [VideoName] stagione due episodio cinque metti [VideoName] stagione due episodio cinque riproduci [VideoName] stagione due episodio cinque |
播放与请求的季和剧集相对应的内容。 |
按角色姓名观看 可选 |
guarda [CharacterName] fammi vedere un film con james bond mostrami un film di james bond |
要么播放与角色姓名匹配的媒体(通过为用户选择推荐媒体的算法),要么向用户显示媒体结果列表。 |
按运动队观看 可选 |
riproduci la partita del [SportsTeam] |
要么播放与运动队匹配的媒体(通过为用户选择推荐媒体的算法),要么向用户显示媒体结果列表。 |
按体育运动类型观看 可选 |
not supported |
要么播放与体育运动类型匹配的媒体(通过为用户选择推荐媒体的算法),要么向用户显示结果列表。 |
按体育联赛观看 可选 |
trasmetti la partita della [League] |
要么播放与体育联赛匹配的媒体(通过为用户选择推荐媒体的算法),要么向用户显示结果列表。 |
按体育赛事观看 可选 |
not supported |
要么播放与体育赛事匹配的媒体(通过为用户选择推荐媒体的算法),要么向用户显示结果列表。 |
功能 | 表述示例 | 预期回应 |
---|---|---|
观看 [标题] 需要认证 |
[VideoName]を再生して [VideoName]を[AppName]で再生して [AppName]で[VideoName][MediaType]を再生して |
播放请求的媒体类型。如果内容有多个匹配项,则系统会提示用户选择所需的媒体。 |
按演员观看 需要认证 |
[ActorNameName]が出ている[MediaType]を再生 |
要么播放有演员参演的媒体(通过为用户选择最佳匹配项的算法),要么向用户显示结果列表。 |
按流派名称观看 需要认证 |
[AppName]で[GenreNameName][MediaType]を再生[AppName]で[GenreNameName]を再生 |
要么播放所请求流派的媒体(通过为用户选择推荐媒体的算法),要么向用户显示媒体结果列表。 |
按系列片 [标题] 观看 需要认证 |
|
要么播放所请求系列片最为推荐的结果,要么向用户显示匹配的系列片列表。 |
按媒体类型观看 可选 |
[VideoName]を再生して [VideoName]を<AppName]で再生して [AppName]で[VideoName][MediaType]を再生して [MediaType]を再生して [ActorNameName]が出ている[MediaType]を再生 [Anaphor][MediaType]を流して [AppName]で[GenreNameName][MediaType]を再生 [AppName]で[VideoName][MediaType]を再生して [ChannelName]の[MediaType]を再生 |
要么播放与非标题请求匹配的媒体(通过为用户选择推荐视频的算法),要么向用户显示结果列表。 |
通过季编号观看 [标题] 可选 |
[VideoName]の[Season][Season_Number]の |
如果剧集的观看未完成,则播放该系列中上次观看的剧集。如果已观看完上次观看的剧集,则播放下一集未观看的剧集。 |
通过剧集编号观看 [标题] 可选 |
[Episode_Number][Episode]を再生 |
通过用户上次观看的剧集来识别正确的剧集。如果剧集的观看未完成,则播放该系列中上次观看的剧集。如果已观看完上次观看的剧集,则播放下一集未观看的剧集。 |
通过季和剧集编号观看 [标题] 可选 |
[Episode_Number][Episode]を再生 [VideoName]の[Season][Season_Number]の |
播放与请求的季和剧集相对应的内容。 |
按角色姓名观看 可选 |
|
要么播放与角色姓名匹配的媒体(通过为用户选择推荐媒体的算法),要么向用户显示媒体结果列表。 |
按运动队观看 可选 |
[SportsTeam]の[Event]を[AppName]で見せて |
要么播放与运动队匹配的媒体(通过为用户选择推荐媒体的算法),要么向用户显示媒体结果列表。 |
按体育运动类型观看 可选 |
[SportsTeam]の[Event]を[AppName]で見せて |
要么播放与体育运动类型匹配的媒体(通过为用户选择推荐媒体的算法),要么向用户显示结果列表。 |
按体育联赛观看 可选 |
[SportsTeam]の[Event]を[AppName]で見せて |
要么播放与体育联赛匹配的媒体(通过为用户选择推荐媒体的算法),要么向用户显示结果列表。 |
按体育赛事观看 可选 |
[SportsTeam]の[Event]を[AppName]で見せて |
要么播放与体育赛事匹配的媒体(通过为用户选择推荐媒体的算法),要么向用户显示结果列表。 |
功能 | 表述示例 | 预期回应 |
---|---|---|
观看 [标题] 需要认证 |
tocar/assistir/reproduzir [VideoName] no/na [AppName] |
播放请求的媒体类型。如果内容有多个匹配项,则系统会提示用户选择所需的媒体。 |
按演员观看 需要认证 |
assistir [ator] colocar [ator] coloque filmes com [ator] encontre filmes com [ator] me mostre filmes com [ator] |
要么播放有演员参演的媒体(通过为用户选择最佳匹配项的算法),要么向用户显示结果列表。 |
按流派名称观看 需要认证 |
assitir [GenreName] assistir programas de [GenreName] programas de [GenreName] colocar [GenreName] por favor reproduzir [GenreName] reproduzir programas de [GenreName] colocar um programa de [GenreName] |
要么播放所请求流派的媒体(通过为用户选择推荐媒体的算法),要么向用户显示媒体结果列表。 |
按系列片 [标题] 观看 需要认证 |
assitir jornada nas estrelas colocar jornada nas estrelas reproduzir jornada nas estrelas você pode passsar jornada nas estrelas por favor reproduzir jornada nas estrelas |
要么播放所请求系列片最为推荐的结果,要么向用户显示匹配的系列片列表。 |
按媒体类型观看 可选 |
assistir um filme colocar um filme nós podemos assistir um filme ver um filme |
要么播放与非标题请求匹配的媒体(通过为用户选择推荐视频的算法),要么向用户显示结果列表。 |
通过季编号观看 [标题] 可选 |
assistir [title] temporada [x] colocar [title] temporada [x] reproduzir [title] temporada [x] |
如果剧集的观看未完成,则播放该系列中上次观看的剧集。如果已观看完上次观看的剧集,则播放下一集未观看的剧集。 |
通过剧集编号观看 [标题] 可选 |
assistir [title] episódio [x] colocar [title] episódio [x] reproduzir [title] episódio [x] reproduzir o [title] episódio [x] |
通过用户上次观看的剧集来识别正确的剧集。如果剧集的观看未完成,则播放该系列中上次观看的剧集。如果已观看完上次观看的剧集,则播放下一集未观看的剧集。 |
通过季和剧集编号观看 [标题] 可选 |
assistir [title] temporada [x] episódio [x] colocar [title] temporada [x] episódio [x] reproduzir [title] temporada [x] episódio [x] |
播放与请求的季和剧集相对应的内容。 |
按角色姓名观看 可选 |
Not Supported |
要么播放与角色姓名匹配的媒体(通过为用户选择推荐媒体的算法),要么向用户显示媒体结果列表。 |
按运动队观看 可选 |
assisitr [SportTeam] assitir o/a [SportTeam] colocar no/na [SportTeam] colocar o jogo do/da [SportTeam] me mostre o jogo do/da [SportTeam] mostre o jogo do/da [SportTeam] |
要么播放与运动队匹配的媒体(通过为用户选择推荐媒体的算法),要么向用户显示媒体结果列表。 |
按体育运动类型观看 可选 |
assistir [Sport] |
要么播放与体育运动类型匹配的媒体(通过为用户选择推荐媒体的算法),要么向用户显示结果列表。 |
按体育联赛观看 可选 |
assistir [League] colocar [League] |
要么播放与体育联赛匹配的媒体(通过为用户选择推荐媒体的算法),要么向用户显示结果列表。 |
按体育赛事观看 可选 |
not supported |
要么播放与体育赛事匹配的媒体(通过为用户选择推荐媒体的算法),要么向用户显示结果列表。 |
功能 | 表述示例 | 预期回应 |
---|---|---|
观看 [标题] 需要认证 |
pon interstellar reproduce interstellar ver interstellar |
播放请求的媒体类型。如果内容有多个匹配项,则系统会提示用户选择所需的媒体。 |
按演员观看 需要认证 |
pon salma hayek reproduce salma hayek |
要么播放有演员参演的媒体(通过为用户选择最佳匹配项的算法),要么向用户显示结果列表。 |
按流派名称观看 需要认证 |
pon comedia en netflix (Not supported without AppName) |
要么播放所请求流派的媒体(通过为用户选择推荐媒体的算法),要么向用户显示媒体结果列表。 |
按系列片 [标题] 观看 需要认证 |
pon star wars reproduce star wars |
要么播放所请求系列片最为推荐的结果,要么向用户显示匹配的系列片列表。 |
按媒体类型观看 可选 |
pon la película* reproduce la película* Note: Not supported in es-ES or es-US |
要么播放与非标题请求匹配的媒体(通过为用户选择推荐视频的算法),要么向用户显示结果列表。 |
通过季编号观看 [标题] 可选 |
empieza la segunda temporada de los rompecorazones comienza la segunda temporada de los rompecorazones reproduce la segunda temporada de los rompecorazones |
如果剧集的观看未完成,则播放该系列中上次观看的剧集。如果已观看完上次观看的剧集,则播放下一集未观看的剧集。 |
通过剧集编号观看 [标题] 可选 |
pon el capítulo final de los serrano |
通过用户上次观看的剧集来识别正确的剧集。如果剧集的观看未完成,则播放该系列中上次观看的剧集。如果已观看完上次观看的剧集,则播放下一集未观看的剧集。 |
通过季和剧集编号观看 [标题] 可选 |
pon el segundo episodio de la primera temporada de anabel reproduce el cuarto episodio de la temporada tres de águila roja |
播放与请求的季和剧集相对应的内容。 |
按角色姓名观看 可选 |
reproduce algo con james bond |
要么播放与角色姓名匹配的媒体(通过为用户选择推荐媒体的算法),要么向用户显示媒体结果列表。 |
按运动队观看 可选 |
ver el partido del real madrid |
要么播放与运动队匹配的媒体(通过为用户选择推荐媒体的算法),要么向用户显示媒体结果列表。 |
按体育运动类型观看 可选 |
reproduce el partido de fútbol en mi televisor ver el partido de fútbol en mi tele ver el partido de fútbol |
要么播放与体育运动类型匹配的媒体(通过为用户选择推荐媒体的算法),要么向用户显示结果列表。 |
按体育联赛观看 可选 |
pon el partido de la a. c. b. en mi tele ver el partido de la a. c. b. en mi televisor |
要么播放与体育联赛匹配的媒体(通过为用户选择推荐媒体的算法),要么向用户显示结果列表。 |
按体育赛事观看 可选 |
ver el partido de fútbol |
要么播放与体育赛事匹配的媒体(通过为用户选择推荐媒体的算法),要么向用户显示结果列表。 |
SearchAndPlay指令示例
以下是SearchAndPlay
指令示例。这是Alexa在回应用户观看“Manchester by the Sea”的请求时发送的指令。
EXTRA_DIRECTIVE_NAMESPACE: Alexa.RemoteVideoPlayer EXTRA_DIRECTIVE_NAME: SearchAndPlay EXTRA_DIRECTIVE_PAYLOAD_VERSION: 3 EXTRA_DIRECTIVE_PAYLOAD: payload
payload
包含以下内容:
{
"payload": {
"experience": {
"mode": "VOICE_OPTIMIZED",
},
"entities": [
{
"externalIds": {
"imdb": "tt4574334"
},
"type": "Video",
"uri": "entity://provider/show/manchesterbythesea",
"value": "Manchester by the Sea"
}
],
"searchText": [
{
"transcribed": "Manchester by the Sea"
}
],
"timeWindow": {
"end": "2016-09-07T23:59:00+00:00",
"start": "2016-09-01T00:00:00+00:00"
}
}
}
{
"directive": {
"endpoint": {
"cookie": {},
"endpointId": "<目标终端的标识符>",
"scope": {
"token": "<OAuth2持有者令牌>",
"type": "BearerToken"
}
},
"header": {
"correlationToken": "dFMb0z+PgpgdDmluhJ1LddFvSqZ/jCc8ptlAKulUj90jSqg==",
"messageId": "e7f9c31f-cb90-4003-9795-c6fb9f487945",
"name": "SearchAndPlay",
"namespace": "Alexa.RemoteVideoPlayer",
"payloadVersion": "3"
},
"payload": {
"experience": {
"mode": "VOICE_OPTIMIZED",
},
"entities": [
{
"externalIds": {
"imdb": "tt4574334"
},
"type": "Video",
"uri": "entity://provider/show/manchesterbythesea",
"value": "Manchester by the Sea"
}
],
"searchText": [
{
"transcribed": "Manchester by the Sea"
}
],
"timeWindow": {
"end": "2016-09-07T23:59:00+00:00",
"start": "2016-09-01T00:00:00+00:00"
}
}
}
}
有效负载定义
字段 | 描述 | 数据类型 |
---|---|---|
entities 可选 |
要播放的实体对象数组,例如Title、Franchise、Actor、Team或MediaType。有关实体类型和值的更多详细信息,请参阅实体类型。 | 数组 |
experience 可选 |
优化搜索结果显示的对象。使用experience 对象,您可以根据客户用来搜索的设备更改搜索结果。有关experience 对象及其值的更多详细信息,请参阅体验类型。
|
包含mode 的对象 |
searchText 可选 |
在transcribed 字段中以字符串值的形式包含用户搜索查询的转录版本。有关详细信息,请参阅查看客户的实际请求。
|
包含transcribe 的对象 |
transcribed 可选 |
提供用户表述的转录版本。有关详细信息,请参见searchText对象。
示例: |
字符串 |
timeWindow 可选 |
为客户想要播放的内容提供时间窗口。例如,如果客户想播放上周的剧集,则时间窗口将显示前一周。
|
包含start 和end 时间的对象。 |
end 可选 |
时间窗口的结束时间。 示例: |
ISO 8601格式的字符串。 |
start 可选 |
时间窗口的开始时间。 示例: |
ISO 8601格式的字符串。 |
实体类型
entities
对象由一个对象列表组成,每个对象都包含一个type
和一个值,以及其他可能的数据,例如外部ID。type
值可能包括以下值: Actor
、App
、Channel
、Character
、Director
、Episode
、Event
、Franchise
、Genre
、League
、MediaType
、ProductionCompany
、Season
、Sport
、SportsTeam
、Video
、Popularity
、Recency
和VideoResolution
。以下各部分提供了有关每种实体类型的有效负载的详细信息。
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电影),它将搜索MediaType
的MOVIE
值的所有“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 |
媒体类型;可能的值为MOVIE 、VIDEO 、TV_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
代表视频内容片段的识别数据;例如,“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 |
Recency
Recency
的解析值表示用户要求的是新内容还是旧内容。
Recency有效负载字段 | 描述 | 类型 | 示例 |
---|---|---|---|
value |
指明用户搜索的是新内容还是旧内容;可能的值为NEW 、OLD |
枚举 | NEW |
VideoResolution
VideoResolution
代表以下标准之一中要求的视频分辨率:
- SD (480p)
- HD (720p-1080p)
- 4k (2160p)
- 8k (4320p)
VideoResolution有效负载字段 | 描述 | 类型 | 示例 |
---|---|---|---|
value |
视频分辨率;可能的值为SD 、HD 、4k 、8k |
枚举 | HD |
体验类型
使用experience
对象根据用于执行搜索的设备优化搜索结果的显示。例如,如果客户通过Fire TV遥控器进行搜索,则experience
对象会显示大量的搜索结果,客户可以使用遥控器浏览这些结果。但是,如果搜索请求来自与Fire TV配对的Echo,则experience
对象会限制显示的结果数量及其显示方式,从而让客户可以无需使用遥控器即可查看结果。
experience
对象由一个mode
对象组成,后者决定如何显示搜索结果。mode
对象采用两个值: VOICE_OPTIMIZED
and DEFAULT
.
-
VOICE_OPTIMIZED
: 针对纯语音设备的搜索结果优化的显示。提供结果列表,客户无需遥控器即可通过语音浏览这些结果。 -
DEFAULT
: 所有搜索结果列表格式的默认显示,无论使用哪种设备进行搜索。
为确保向前兼容性,如果在mode
中收到未知值,可回退到DEFAULT
,而不是遭遇失败。
处理SearchAndPlay指令
SearchAndPlay
指令包含观看或播放媒体的指示。该指令包含所需的媒体对象和所获得的描述为实体的URI。该指令包含一个实体数组,用于指定要搜索和播放的内容。
(SearchAndPlay
指令与多模式实现视频技能中的GetPlayableItems
类似。)
以下各部分为处理具有不同请求的SearchAndPlay
指令提供了指导。
按标题观看
当用户在支持Alexa的设备上说出“Alexa, watch Interstellar”(Alexa,观看Interstellar)或任何其他标题时,您将在自己的应用或Lambda中收到SearchAndPlay
指令。
作为SearchAndPlay
指令的一部分,您将在该指令中看到externalIds
部分。在该部分中,您应该查找与自己的目录对应的字段。该字段将包含和您在目录集成中所用相同的ID
值,让您能够准确知道用户想要观看哪个节目。然后,您可以使用它通过播放媒体来履行用户的请求。
如果在同一个目录中您仍然在指令中看到多个ID
值,这可能是因为Alexa在您的目录中识别到多个与用户请求的标题相匹配的节目。您应该选择最匹配的一项来为用户播放。利用任何有助于将内容与用户匹配的算法。
如果您在externalIds
字段中看不到自己的目录ID
值,并且您已确保让Alexa播放应用中的内容,请联系您的亚马逊代表寻求帮助。
按标题、剧集和季观看
当用户说出“Alexa, watch Interstellar Season 2 Episode 2”(Alexa,观看Interstellar的第2季第2集)时,您会收到与用户说出“Alexa, watch Interstellar”(Alexa,观看Interstellar)时类似的指令。 但是,关键区别在于该指令中还将包含以下JSON:
{
"type": "Episode",
"value": "2"
},
{
"type": "Season",
"value": "2"
}
此JSON表示用户请求的季和剧集编号。您必须播放客户要求的季/剧集。您收到的目录ID
将仅包含顶层节目目录ID
,而不包含季/剧集ID。但是,您应该能够将季/剧集编号与节目的目录ID
一起使用,以播放正确的内容。
您还应该考虑到这样一种情况,即用户可能会选择指定季但不指定剧集,或者指定剧集但不指定季 - 您仍然必须履行他们的请求。请遵循以下指导来确定正确的内容:
- 如果用户要求按季观看影片(例如,“Alexa, watch Bosch, Season 3”(Alexa,观看Bosch的第3季)),并且不能确定用户想要播放电视连续剧的哪一集,则显示上次观看的剧集。如果上次观看的剧集已完成,则显示该剧集之后未观看的下一集。或者,显示该季的剧集列表。
- 如果用户请求按季观看可能属于多个季的标题(例如,“Alexa, watch Bosch, episode 5”(Alexa,观看Bosch的第5集)),则通过查看用户上次观看的剧集来确定正确的季。如果上次观看的剧集在第2季中,则播放第2季的第5集。或者,显示该季的剧集列表。
按系列片观看
对于某些表述,实际上并不清楚用户想要播放什么内容。例如,用户可能会说“Alexa, watch Jurassic Park”(Alexa,观看Jurassic Park)。 在这种情况下,我们不知道用户想要观看的是Jurassic Park 1、Jurassic Park 2还是Jurassic Park 3。具有多种此类变体的媒体被称为“系列片”。 系列片场景不完全适合季/剧集模式,通过“Watch by Franchise”(按系列片观看)来处理。
当用户提出按系列片观看的请求时,您将收到用户在指令中请求的系列片(在本例中为Jurassic Park),但该指令将不包含目录ID。对于这些指令,预计您将在目录中搜索该内容,然后播放搜索结果中排名最靠前的结果。如果这样不可行,则必须至少将用户转到应用中的搜索结果,这样用户才能使用自己的遥控器查看他们想要播放的内容。您不应该直接忽略该指令。
系列片列表中提供了系列片的列表。
按类型、体育运动、运动队、联赛和其他不明确的观看指令观看
Alexa还支持诸如“Alexa, watch a comedy”(Alexa,观看喜剧)或“Alexa, watch basketball”(Alexa,观看篮球)之类的措词。 对于此类泛指的场景,您可以选择将用户转到搜索结果,也可以将用户转到该特定类型或近似实体的详情页面。
例如,许多应用都有专门用于喜剧、动作片、情景喜剧等的特殊页面,这些页面不同于简单的搜索结果。这些类型页面精选了与该主题相关的媒体。如果需要,您可以选择在收到用户的相关不明确请求时将用户转到这些类型页面。预期即使在最坏的情况下,您的应用也应至少将用户转到搜索结果。您不应该直接忽略该指令。
可以在类型列表中找到在指令中收到的类型列表。
处理不明确的请求
与SearchAndDisplayResults
类似,SearchAndPlay
支持多种实体类型,包括内容标题、系列片名称、演员、导演、运动队、媒体类型等。这意味着其中一个指令可能包含不明确的实体请求。
例如,客户可以请求“Alexa, watch a popular comedy”(Alexa,观看一部热门喜剧),或者 “Alexa,观看一部Billy Bob Thornton的电影。” 尽管所指不明确,但您可以决定如何对请求采取行动。例如,您可以执行以下操作:
- 开始播放一部热门喜剧片或Bob Thornton的电影
- 生成排名前十的喜剧片或Billy Bob Thornton电影的列表,并随机为客户选择一部以避免重复
- 直接前往该不明确实体的搜索结果
您可以选择回应方式;但是,建议尽可能满足客户的请求。
查看实际客户的请求
这里可以回顾一下,云端的Alexa服务负责解释客户的请求,确定意图,然后将其打包成指令。如果您想查看实际用户的请求(而不是Alexa对请求的解释),该怎么办?幸运的是,可以获得用户的实际请求版本。
在指令payload
中,searchText
对象代表客户搜索请求。在searchText
对象中,transcribed
值是一个代表客户意图的字符串。该transcribed
值是客户所说内容的精简版本。例如,请求“Alexa, watch popular comedy tv shows in HD”(Alexa,以高清观看热门喜剧电视节目)的transcribed
值可能如下所示:
{
"searchText": {
"transcribed": "h.d. popular comedy tv shows"
}
}
如您所见,transcribed
的属性是请求的摘要/编辑版本,选择了请求的主词。searchText
对象存在以下限制:
- 不保证词序。 对于相同的表述,
searchText
可能会按不同的顺序返回transcribed
值,例如:- “h. d. korean war documentary movies”(高清朝鲜战争纪录片)
- “korean war documentary h. d. movies”(朝鲜战争纪录片高清电影)
searchText
的内容可能会随着时间的推移或根据指令而变化。 对于相同的表述,searchText
可能会在不同的时间点返回不同的transcribed
值,例如:- “top ten comedies”(排名前十的喜剧)
- “top 10 comedies”(排名前10的喜剧)
- 操作动词被省略。
transcribed
值不会显示用户请求中使用的操作动词。
请注意,searchText
可以包含内容提供方名称(如果它们是客户请求的一部分)。以下是一些示例:
- 请求“Alexa, find content provider movies”(Alexa,查找[内容提供方] 电影)将返回
transcribed
值“content provider movies”([内容提供方] 电影) - 请求“Alexa, find comedies on content provider”(Alexa,在[内容提供方]上查找喜剧)将返回
transcribed
值“content provider comedies”([内容提供方] 喜剧)
searchText
用作搜索有效负载中其他值的备用值。searchText
字段是可选字段,可能不会出现在您收到的指令中。即使该指令不包含searchText
值,您的实现也必须返回响应。如果您想专注于关键词搜索(例如,全文搜索),可使用searchText
。请注意,entities
依赖于已解析的目录值。如果您有与特定值相关的专用目录,例如电影目录、类型目录等,或者如果您有某种形式的数据模型可以促进结构化查询,可使用这些实体。
响应示例
如果您的应用成功处理了该指令,则您的BroadcastReceiver类应连同成功状态将成功意图发回,如下所示:
if (response != null && sendResponse) {
Intent success = new Intent().putExtra(VSKIntentConstants.EXTRA_DIRECTIVE_STATUS, didSucceed);
try {
response.send(context, 0, success);
} catch(PendingIntent.CanceledException e) {
// 我们进行回复、记录错误可能花了太长时间
}
}
有关更多详细信息,请参见步骤7: 添加BroadcastReceiver。另请参阅示例应用中的AlexaDirectiveReceiver
类,以获取更具体的代码示例。
当SearchAndPlayResults
指令成功完成后,您的应用或Lambda应使用Alexa.Response
消息进行响应。
{
"context": {
"properties": []
},
"event": {
"header": {
"correlationToken": "dFMb0z+PgpgdDmluhJ1LddFvSqZ/jCc8ptlAKulUj90jSqg==",
"messageId": "1d8749ce-2805-4781-bb34-c5c59ce71f6a",
"name": "Response",
"namespace": "Alexa",
"payloadVersion": "3"
},
"payload": {}
}
}
不需要payload
内容。借助Fire TV应用上的视频技能,返回到Alexa的响应很少,并且payload
为空。这是因为您通过ADM向Fire TV应用发送了所需的指示。
如果您由于某种原因无法完成客户请求,可以用错误来回应。有关更多详细信息,请参阅错误处理。
声明此接口的功能支持
要从RemoteVideoPlayer
接口接收针对您应用的SearchAndDisplayResults
指令,必须在声明功能时指明支持此接口。有关通过仅限应用的集成声明功能的更多信息,请参阅以下内容:
要指明您的视频技能支持来自Alexa.RemoteVideoPlayer
接口的SearchAndPlay
指令,您必须在响应通过Alexa.Discovery
接口发送的Discover
指令时指明支持该接口。Alexa.Discovery
中提供了更多详细信息。
Last updated: 2021年6月9日