as

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

Alexa.SeekController接口 (VSK Fire TV)

Alexa.SeekController接口 (VSK Fire TV)

当用户说出要快进或倒回特定时长时(例如“Alexa, fast forward 5 minutes”(Alexa,快进5分钟)或“Alexa, skip ahead 60 seconds”(Alexa,向前跳过60秒)),Alexa.SeekController接口会向您的应用或Lambda发送AdjustSeekPosition指令。

请注意,SeekController接口(例如AdjustSeekPosition指令)发送的指令与PlaybackController接口中的快进和倒回操作不同,因为它们包含偏移量的具体时长。

有关AdjustSeekPosition指令的表述

当用户说出以下表述时,Alexa会向您的应用(用于仅限应用的集成)或您的Lambda(用于云端集成)发送AdjustSeekPosition指令。

功能 表述示例 预期响应
快进 [持续时间]
需要认证

Fast forward thirty seconds

将媒体快进请求的持续时间。

倒回 [持续时间]
需要认证

Rewind forty seconds

将媒体倒回请求的持续时间。

功能 表述示例 预期响应
快进 [持续时间]
需要认证

Avance de trente secondes

Saute trente secondes

将媒体快进请求的持续时间。

倒回 [持续时间]
需要认证

rebobina treinta segundos

retrocede diez segundos

将媒体倒回请求的持续时间。

功能 表述示例 预期响应
快进 [持续时间]
需要认证

Avance de trente secondes

Saute trente secondes

将媒体快进请求的持续时间。

倒回 [持续时间]
需要认证

Rembobine de trente secondes

Retour en arrière de trente secondes

将媒体倒回请求的持续时间。

功能 表述示例 预期响应
快进 [持续时间]
需要认证

spul/spring [Duration] lang? vor/vorwärts

spring [Duration] vorwärts auf [AppName]

spul [DeviceBrand] vor

spring [Duration] auf [DeviceBrand] vor

überspring [Duration] auf [DeviceType]

将媒体快进请求的持续时间。

倒回 [持续时间]
需要认证

spul zurück

spring zurück

spul/spring für? [Duration] lang? zurück

spring nach hinten für [Duration]

spul [AppName] zurück

spul [AppName] [Duration] zurück

spul [Duration] auf [AppName] zurück

spring rückwärts auf [AppName] für [Duration]

spul auf? [DeviceBrand] zurück

spul [DeviceBrand] [Duration] zurück

将媒体倒回请求的持续时间。

功能 表述示例 预期响应
快进 [持续时间]
需要认证

[Duration] के लिए आगे/forward जाओ [Episode] में fast forward Duration कर दें

[Duration] के लिये [Episode] forward कर दें[MediaType] में [Duration] आगे जाओ[AppName] पर [Duration] आगे जाओ

将媒体快进请求的持续时间。

倒回 [持续时间]
需要认证

1. पीछे जाना दस seconds

2. rewind करो forty seconds

将媒体倒回请求的持续时间。

功能 表述示例 预期响应
快进 [持续时间]
需要认证

manda avanti l' episodio di trenta secondi

vai avanti di trenta secondi

manda avanti di trenta secondi

将媒体快进请求的持续时间。

倒回 [持续时间]
需要认证

manda indietro di trenta secondi

manda indietro il video di trenta secondi

将媒体倒回请求的持续时间。

功能 表述示例 预期响应
快进 [持续时间]
需要认证

将媒体快进请求的持续时间。

倒回 [持续时间]
需要认证

将媒体倒回请求的持续时间。

功能 表述示例 预期响应
快进 [持续时间]
需要认证

将媒体快进请求的持续时间。

倒回 [持续时间]
需要认证

rebobinar/voltar [durastion]

将媒体倒回请求的持续时间。

功能 表述示例 预期响应
快进 [持续时间]
需要认证

adelanta treinta segundos

salta diez minutos en la película

将媒体快进请求的持续时间。

倒回 [持续时间]
需要认证

rebobina treinta segundos

retrocede diez segundos

将媒体倒回请求的持续时间。

与其他指令一样,当您收到Discovery指令时,必须指定您的视频技能支持的SeekController指令。

处理AdjustSeekPosition指令

AdjustSeekPosition指令在payload中包含一个名为deltaPositionMilliseconds的属性。deltaPositionMilliseconds的值可以是正数(向前搜索)或负数(在流中向后移动)。

例如,“Skip 5 minutes”(跳过5分钟)生成deltaPositionMilliseconds300000,而“Rewind 10 minutes”(倒回10分钟)生成deltaPositionMilliseconds-600000

换句话说,负值表示倒回,正值表示快进。您必须通过向前移动指定的偏移量来履行用户的请求。

示例AdjustSeekPosition指令

以下是AdjustSeekPosition指令示例:

EXTRA_DIRECTIVE_NAMESPACE: Alexa.SeekController
EXTRA_DIRECTIVE_NAME: AdjustSeekPosition
EXTRA_DIRECTIVE_PAYLOAD_VERSION: 3
EXTRA_DIRECTIVE_PAYLOAD: payload

payload包含以下内容:

{
    "payload": {
    "experience": {
        "mode": "VOICE_OPTIMIZED",
         },
        "deltaPositionMilliseconds": 300000
    }
}
{
    "directive": {
        "endpoint": {
            "cookie": {},
            "endpointId": "VSKTV",
            "scope": {
                "token": "<an OAuth2 bearer token>",
                "type": "BearerToken"
            }
        },
        "header": {
            "correlationToken": "dFMb0z+PgpgdDmluhJ1LddFvSqZ/jCc8ptlAKulUj90jSqg==",
            "messageId": "4bef62cc-208d-4382-a43e-ce9e4825c1cb",
            "name": "AdjustSeekPosition",
            "namespace": "Alexa.SeekController",
            "payloadVersion": "3"
        },
        "payload": {
           "experience": {
              "mode": "VOICE_OPTIMIZED",
                  },
            "deltaPositionMilliseconds": 300000
        }
    }
}

有效负载定义

下表描述了payload属性。

有效负载描述
字段 描述 数据类型
deltaPositionMilliseconds
必需
在媒体播放器上播放时要搜索的相对毫秒数。正整数值或负整数值可用于相对于当前搜索位置向前或向后寻找。接受的值包括介于-8640000086400000(-/+ 24小时)之间的任何整数值。如果所需位置超出媒体项目的持续时间,则应将其设置为开头或结尾,取决于deltaPositionMilliseconds具体为负数还是正数。

示例: 86400000

整数
experience
可选
优化搜索结果显示的对象。使用experience对象,您可以根据客户用来搜索的设备更改搜索结果。有关experience对象及其值的更多详细信息,请参阅体验类型

包含mode的对象

体验类型

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

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

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

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

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

响应示例

如果您的应用成功处理了该指令,则您的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类,以获取更具体的代码示例。

在收到AdjustSeekPosition指令并运行请求后,向Alexa发回响应,该响应以毫秒为单位指示位置状态。payload包含namevalue属性,如以下示例所示。positionMilliseconds表示从-86400000到86400000之间以毫秒为单位的绝对实现的搜索位置。

示例

{
    "context": {
        "properties": []
    },
    "event": {
        "header": {
            "correlationToken": "dFMb0z+PgpgdDmluhJ1LddFvSqZ/jCc8ptlAKulUj90jSqg==",
            "messageId": "eab7fe6e-f65d-4dbb-aeea-5bae61439f4d",
            "name": "Response",
            "namespace": "Alexa",
            "payloadVersion": "3"
        },
        "payload": {}
    }
}

如果您由于某种原因无法完成客户请求,可以用错误来回应。有关更多详细信息,请参阅错误处理

声明此接口的功能支持

要在应用中接收SeekController指令,必须在声明功能时表示支持此接口。有关通过仅限应用的集成声明功能的更多信息,请参阅以下内容:

要指明您的视频技能支持Alexa.SeekController接口,您必须在响应通过Alexa.Discovery接口发送的Discover指令时指明支持该接口。Alexa.Discovery中提供了更多详细信息。


Last updated: 2021年6月9日