Alexa.KeypadControllerインターフェース
Alexa.KeypadController
機能インターフェースを使うと、画面ナビゲーションで音声を有効にできます。スクロール、方向パッド(Dパッド)、画面要素の選択、アクティブな要素の詳細表示などを音声で操作できます。音声ナビゲーションは、スマートテレビのホーム画面、ライブ配信サービス、ストリーミングアプリに対して有効にできます。
KeypadController
インターフェースでサポートされているロケールについては、機能インターフェースの一覧を参照してください。
発話
Alexa.KeypadController
インターフェースを使用する場合、音声対話モデルは既にビルドされています。ユーザーが次のような発話をしたら、Alexaがそれに対応するディレクティブをスキルに送信します。
以下に、ユーザーの発話の例を示します。
Alexa, scroll right.
Alexa, page down.
Alexa, go right.
Alexa, move down.
Alexa, select this.
Alexa, choose this.
Alexa, show details.
Alexa, show info.
Alexa, see more information.
シナリオ
Alexa.KeypadController
を使う次のようなシナリオを考えてみましょう。
ホーム画面で音声を有効にする
スマートテレビのメーカーであれば、KeypadController
を使ってホーム画面で音声を有効にできます。ユーザーはテレビでサポートされるアプリのリストを見ているときに、音声で上下左右へスクロールしたり、アプリを選んだりといった操作ができます。このシナリオでは、Alexa.PowerControllerインターフェースとAlexa.Launcherインターフェースを使っています。以下は、このシナリオのユーザー発話の例です。
Alexa, turn on the TV.
Alexa, scroll right.
Alexa, launch [app].
番組表で音声を有効にする
ライブ配信サービスの場合、KeypadController
を使って番組表で音声を有効にできます。ユーザーは、番組表の上下左右へのスクロールや番組の選択を音声で操作できます。このシナリオでは、Alexa.PowerControllerインターフェースとAlexa.Launcherインターフェースを使っています。以下は、このシナリオのユーザー発話の例です。
Alexa, turn on [name of live TV provider].
Alexa, go to cable guide.
Alexa, scroll down.
Alexa, select this.
Alexa, go home.
アプリで音声を有効にする
アプリ開発者の場合、Alexa.KeypadController
を使ってアプリで音声を有効にし、ユーザーが上下左右へのスクロールを音声で操作できるようにします。ほかにも、画面に表示されている要素の詳細ページを音声で開き、詳細を確認することもできます。このシナリオでは、Alexa.LauncherインターフェースとAlexa.RemoteVideoPlayerインターフェースも使い、コメディ映画を表示させています。以下は、このシナリオのユーザー発話の例です。
Alexa, launch [app].
Alexa, show me comedies.
Alexa, scroll right.
Alexa, show me details.
プロパティとオブジェクト
keystrokeプロパティ
Alexa.KeypadController
インターフェースは、keystroke
プロパティをプライマリプロパティとして使用します。有効な値は次のとおりです。
keystrokeの種類 | keystrokeの値 | 説明 |
---|---|---|
方向パッド (Dパッド) |
UP 、DOWN 、LEFT 、RIGHT 、SELECT |
上下左右に一単位分移動したり、次の画面要素に移動したり、アクティブな画面要素や項目を選択したりします。 |
スクロール | PAGE_UP 、PAGE_DOWN 、PAGE_LEFT 、PAGE_RIGHT |
指定した方向へスクロールします。 |
情報 | INFO 、MORE |
現在アクティブな画面要素についての詳細情報を表示します。たとえば、画面に表示されていないコンテンツを表示させたり、詳細ページに移動したりできます。 |
検出
Alexa.KeypadController
をサポートするエンドポイントは、Alexa.Discoveryの標準検出メカニズムを使用して表します。
KeypadController
インターフェースには、keys
アトリビュートを含め、サポートするキー操作を列挙します。
検出の応答例
以下は、Alexa.KeypadController
をサポートするエンドポイントへのDiscover.Response
メッセージの例です。
{
"event": {
"header": {
"namespace": "Alexa.Discovery",
"name": "Discover.Response",
"payloadVersion": "3",
"messageId": "<メッセージID>"
},
"payload": {
"endpoints":[
{
"endpointId": "<エンドポイントの一意のID>",
"manufacturerName": "<エンドポイントのメーカー名>",
"description": "<Alexaアプリに表示される説明>",
"friendlyName": "<Alexaアプリに表示されているデバイス名>",
"cookie": {},
"capabilities": [
{
"type": "AlexaInterface",
"interface": "Alexa.KeypadController",
"version": "3",
"keys": [
"INFO", "MORE", "SELECT",
"UP", "DOWN", "LEFT", "RIGHT",
"PAGE_UP", "PAGE_DOWN", "PAGE_LEFT", "PAGE_RIGHT"
]
}
]
}
]
}
}
}
ディレクティブ
SendKeystrokeディレクティブ
ユーザーがコンテンツをスクロールできるようSendKeystroke
ディレクティブがサポートされています。
SendKeystrokeディレクティブペイロードの詳細
フィールド | 説明 | 型 |
---|---|---|
keystroke |
ユーザーがリクエストしたkeystrokeです。 | 文字列 |
SendKeystrokeディレクティブの例
{
"directive": {
"header": {
"namespace": "Alexa.KeypadController",
"name": "SendKeystroke",
"messageId": "<メッセージID>",
"correlationToken": "<opaque相関トークン>",
"payloadVersion": "3"
},
"endpoint": {
"scope": {
"type": "BearerToken",
"token": "<OAuth2ベアラートークン>"
},
"endpointId": "<エンドポイントID>",
"cookie": {}
},
"payload": {
"keystroke": "SELECT"
}
}
}
SendKeystroke応答イベント
SendKeystroke
ディレクティブを正しく処理したら、Alexa.Responseイベントを使用して応答します。応答は同期または非同期のどちらでも可能です。非同期で応答する場合、相関トークンと、認可トークンを含めたスコープを含めます。
SendKeystroke応答イベントの例
{
"event": {
"header": {
"namespace": "Alexa",
"name": "Response",
"messageId": "<メッセージID>",
"correlationToken": "<opaque相関トークン>",
"payloadVersion": "3"
},
"endpoint": {
"scope": {
"type": "BearerToken",
"token": "<OAuth2ベアラートークン>"
},
"endpointId": "<エンドポイントID>"
},
"payload": {}
}
}
SendKeystrokeディレクティブのエラー処理
SendKeystroke
ディレクティブを正しく処理できなかった場合は、Alexa.ErrorResponseイベントを使用して応答します。