Alexa.UIControllerインターフェース
UIController
インターフェースは、よりインテリジェントにユーザーのリクエストに応答するため、アプリのUIの状態を考慮に入れます。UIController
インターフェースを使用するには、ページ上のすべての要素とフォーカスがある要素をリストにして、UIの状態をAlexaに送信する必要があります。これらの詳細は、AlexaがLambdaに送信するディレクティブに含められます。
UIController
を実装する場合は、MediaDetailsNavigator
の実装も検討してください。MediaDetailsNavigatorは、UI状態レポートを使用して「ビデオタイトルの詳細を表示する」リクエスト用のディレクティブを提供するAlexaインターフェースです。
UIController
インターフェースは、クラウド側の統合のみをサポートしています。- 詳細な説明
- UIControllerとKeypadControllerの違い
- サポート対象の発話
- UI状態レポートの送信
- データ構造
- ペイロードの定義
- ActionOnUIElementディレクティブの例
- UI状態レポートとUIControllerディレクティブの例
- サンプルアプリの統合
- MediaDetailsNavigator
詳細な説明
Alexaがよりインテリジェントにユーザーのリクエストに応答するには、ユーザーが画面で見ている要素と、各要素で使用できるアクションをAlexaが把握する必要があります。この情報はUIの状態と呼ばれます。UIの状態には、UIに表示されるアイテムを表すディメンションが2つあります。画面に表示される要素のリスト(状態レポートのuiElements
セクションで報告される)と、フォーカスがある要素(focusedUIElement
セクションで報告される)です。
UIの状態をAlexaに通知するには、まずアプリ開発者がUIレポートをAmazonに送信します(特定のAlexaゲートウェイエンドポイントにChangeReport
としてイベントを送信)。これにより、Alexaがさまざまな画面要素を動的にターゲットにできます。たとえば、アプリを起動すると、画面のUI要素の構造化されたリスト(名前、エイリアス、位置、それらのオブジェクトでサポートされるアクションなど)が送信されます。UIが変更されるたびに、AlexaエンドポイントにUIの状態を送信します。
ユーザーが、画面上のUIナビゲーションや選択に関連するリクエスト(「アレクサ、3番を再生して」「アレクサ、[視聴を続ける] を選択して」「アレクサ、ハリーポッターを再生して」「アレクサ、これを再生して」など)を行うと、UIController
インターフェースからLambdaにActionOnUIElement
ディレクティブが送信されます。このディレクティブには、以前にAlexaに送信したUIの状態の具体的な詳細情報が含まれています。たとえば、画面上で「Popcorn Movie」というタイトルがリストの2番目の位置にある場合、UIController
インターフェースはその詳細を含むディレクティブをLambdaに送信します。
RemoteVideoPlayer: SearchAndPlay
など)。つまり、UIController
インターフェースは必ずしもActionOnUIElement
ディレクティブを送信するとは限りません。必要に応じて、ほかのディレクティブ(RemoteVideoPlayer: SearchAndPlay
など)が送信されることもあります。そのため、以下のサポート対象の発話セクションにはSearchAndPlayディレクティブの発話も含まれています。UIController
インターフェースを使用すると、プロフィールや画面上の特定アイテムを音声で選択するなど、アプリのUIで高度な音声操作を行うことができます。
UIControllerとKeypadControllerの違い
UIController
がKeypadController
と異なるのは、UIController
はUIの状態を考慮し、送信するディレクティブにUI状態の詳細情報を含める点です。KeypadController
はステートレスであり、アプリのUIに関する具体的な詳細情報を受け取ることはありません。結果的に、UIController
の方がより幅広い発話のタイプをサポートできます。
KeypadController
とUIController
は両方を同時に使用できます。UIの状態が利用可能になると、UIController
がKeypadController
よりも優先されます。UIの状態が利用できない場合は、KeypadController
がフォールバックとして使用されます。KeypadController
を実装していない場合、Fire TVに組み込まれているアプリ内の音声ナビゲーション・選択機能がフォールバックになります。
サポート対象の発話
ユーザーが画面の要素に関連するナビゲーションまたは選択のリクエストを行うと、AlexaはLambdaにActionOnUIElement
ディレクティブを送信します。UIController
はUIの状態にアクセスできるため、ほかの発話とは異なり、サポート対象の発話の厳格なセットはありません。サポート対象の発話と機能は、UI状態レポート(後述)で提供する画面上のコンテキストに基づいて動的に制御できます。アプリがサポートする発話は、UI状態レポートで提供する要素によって異なります。
たとえば、「Jakeのウォッチリスト」という要素を3番目の序数として記述した場合、Alexaは「Jakeのウォッチリストに移動して」や「3番目のウォッチリストを選択して」といった発話をサポートします(序数は、1番目、2番目などの位置を示す識別子です)。
状態レポートの詳細に応じて、次の発話とシナリオがサポートされます。
-
「右/左/上/下にスクロールして」や「右/左/上/下のページに移動して」と話しかけて、リストをスクロールできます(注: 「前にスクロールして」はサポートされていません)。
-
「もっと表示して/見せて」と話しかけると、ショートリストに表示されていないほかの/すべてのタイトルを表示できます(注: 「すべてを表示して/見せて」はサポートされていません)。
-
「これ/あれ/最初のもの/1番を選択して/選んで」のように話しかけると、リストからアイテムを選択できます。また、「『Mockingjay』を選択して/再生して/選んで/見せて」のように話しかけて、リスト内のタイトルを再生するようAlexaに指示することもできます。
-
「右/左/上/下に移動して」、「選択して/選んで/見せて/再生して」の順に発話すると、リモコンのD-Padコントローラーと同様の操作も音声で実行できます。
-
ビデオの詳細ページで、画面に表示される 「ウォッチリストに追加」、「今すぐ観る」、「予告編を観る」などのアクションを実行できます。
-
最近視聴した番組、ウォッチリスト、おすすめビデオなど、任意のUIの場所に移動できます。
-
ダイアログ画面に応答してオプションを選択できます。リモコンに手を伸ばす必要はありません。
MediaDetailsNavigator
という別のインターフェースを実装する必要があります。複数のロケールでの発話の例については、次のリストを参照してください。これらの発話には、KeypadController
とRemoteVideoPlayer: SearchAndPlay
の発話が含まれます。
機能 | サンプル発話 | 想定されるレスポンス |
---|---|---|
これを観る 認定に必須 |
Watch this |
フォーカスがあるメディアの再生が開始されます。 |
これを再生 認定に必須 |
Play this |
フォーカスがあるメディアの再生が開始されます。 |
方向ナビゲーション - 行く 認定に必須 |
Go up go down go left go right |
D-Padコントローラーで上下左右を押した場合と同様に、アプリが上下左右へ移動します。 |
方向ナビゲーション - 移動 認定に必須 |
Move up move down move left move right |
D-Padコントローラーで上下左右を押した場合と同様に、アプリが上下左右へ移動します。 |
方向スクロール 認定に必須 |
Scroll up scroll down scroll left scroll right |
D-Padコントローラーで上下左右を押した場合と同様に、アプリが上下左右にスクロールします。 |
ページ内で移動 認定に必須 |
Page up page down page left page right |
D-Padコントローラーで上下左右を押した場合と同様に、アプリ内のページを上下左右に移動します。 |
動詞のない方向ナビゲーション 認定に必須 |
Up Down Left Right |
D-Padコントローラーで上下左右を押した場合と同様に、アプリが上下左右に移動します。 |
これ(それ)を選択する/選ぶ 認定に必須 |
Select this |
フォーカスが置かれている対象が選択されます。 |
もっと表示する/見る 省略可能 |
Show more |
さらに多くのアイテムが表示されます。たとえば、リストに表示されるアイテム数が限られている場合は、さらに多くのアイテムが取得されて表示されます。 |
詳細(情報)を表示する/見る 省略可能 |
Show details |
さらに詳細な情報が表示されます。たとえば、情報が切り詰められている場合は、詳細情報が表示されます。 |
次のページを取得 認定に必須 |
Next |
次のページの結果が画面に表示されます。 |
<タイトル>を再生 認定に必須 |
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 |
リクエストされたスポーツイベントに一致するメディアが(ユーザーへのおすすめメディアを選び出すアルゴリズムによって)再生されるか、検索結果リストがユーザーに表示されます。 |
<パートナー>アプリを起動 認定に必須 |
Launch netflix app |
リクエストされたアプリが起動し、再生可能なメディアのリストが表示されます。マルチモーダルデバイスのホームページテンプレートには、異なるカテゴリーにメディアが分類されて表示される可能性があります。 |
特殊文字のタイトルを起動 認定に必須 |
Launch a. t. and t. u-verse app |
リクエストされたアプリが起動し、再生可能なメディアのリストが表示されます。マルチモーダルデバイスには、異なるカテゴリーに分類される可能性のあるメディアが表示されるホームページテンプレートがあります。 |
コントロールの設定に移動 |
Go to control settings |
ビューがコントロールの設定に変わります。 |
ホーム画面に移動 省略可能 |
Go home |
ビューがホーム画面に変わります。 |
閉じる 省略可能 |
Close [3P App] e.g. Close Netflix |
アプリまたはスキルが閉じます。 |
終了 省略可能 |
Exit [ 3p App] Exit Netflix |
アプリまたはスキルが終了します。 |
終了 省略可能 |
Quit [ 3p App] Quit Netflix |
アプリまたはスキルが終了します。 |
開く 省略可能 |
Open
|
アプリまたはスキルが開きます。 |
機能 | サンプル発話 | 想定されるレスポンス |
---|---|---|
これを観る 認定に必須 |
Not supported |
フォーカスがあるメディアの再生が開始されます。 |
これを再生 認定に必須 |
joue ça |
フォーカスがあるメディアの再生が開始されます。 |
方向ナビゲーション - 行く 認定に必須 |
va vers le haut monte vers le haut remonte va en bas descends faire défiler vers le bas va à gauche aller à gauche va à droite aller à droite |
D-Padコントローラーで上下左右を押した場合と同様に、アプリが上下左右へ移動します。 |
方向ナビゲーション - 移動 認定に必須 |
va vers le haut monte vers le haut remonte navigue en bas navigue vers le bas Naviguer à gauche Naviguer vers la gauche Naviguer à droite Naviguer vers la droite |
D-Padコントローラーで上下左右を押した場合と同様に、アプリが上下左右へ移動します。 |
方向スクロール 認定に必須 |
fais défiler vers le haut fais défiler en haut faire défiler vers le bas défiler vers le bas se déplacer vers le bas fais défiler à gauche faire défiler à gauche défiler à gauche se déplacer à droite fais défiler à droite faire défiler à droite défiler à droite se déplacer à droite |
D-Padコントローラーで上下左右を押した場合と同様に、アプリが上下左右にスクロールします。 |
ページ内で移動 認定に必須 |
page vers le haut Page vers le bas Page vers la gauche Page vers la droite |
D-Padコントローラーで上下左右を押した場合と同様に、アプリ内のページを上下左右に移動します。 |
動詞のない方向ナビゲーション 認定に必須 |
va en haut monte faire défiler vers le haut va en bas descends faire défiler vers le bas fais défiler à gauche va à gauche faire défiler à gauche se déplacer à gauche aller à gauche défiler à gauche fais défiler à droite va vers la droite fais défiler vers la droite déplace-toi vers la droite aller à droite défile à droite |
D-Padコントローラーで上下左右を押した場合と同様に、アプリが上下左右に移動します。 |
これ(それ)を選択する/選ぶ 認定に必須 |
sélectionne ça choisis ça |
フォーカスが置かれている対象が選択されます。 |
もっと表示する/見る 省略可能 |
montre moi en plus montre en plus encore |
さらに多くのアイテムが表示されます。たとえば、リストに表示されるアイテム数が限られている場合は、さらに多くのアイテムが取得されて表示されます。 |
詳細(情報)を表示する/見る 省略可能 |
montre des détails montre moi des détails voir plus d'infos |
さらに詳細な情報が表示されます。たとえば、情報が切り詰められている場合は、詳細情報が表示されます。 |
次のページを取得 認定に必須 |
prochain(e) suivant(e) next |
次のページの結果が画面に表示されます。 |
<タイトル>を再生 認定に必須 |
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 |
リクエストされたスポーツイベントに一致するメディアが(ユーザーへのおすすめメディアを選び出すアルゴリズムによって)再生されるか、検索結果リストがユーザーに表示されます。 |
<パートナー>アプリを起動 認定に必須 |
pars [AppName] |
リクエストされたアプリが起動し、再生可能なメディアのリストが表示されます。マルチモーダルデバイスのホームページテンプレートには、異なるカテゴリーにメディアが分類されて表示される可能性があります。 |
特殊文字のタイトルを起動 認定に必須 |
pars [AppName] |
リクエストされたアプリが起動し、再生可能なメディアのリストが表示されます。マルチモーダルデバイスには、異なるカテゴリーに分類される可能性のあるメディアが表示されるホームページテンプレートがあります。 |
コントロールの設定に移動 |
vas à la configuration vas aux paramètres vas à la configuration des contrôles vas aux paramètres des contrôles ouvres la configuration ouvres les paramètres ouvres la configuration des contrôles ouvres les paramètres des contrôles |
ビューがコントロールの設定に変わります。 |
ホーム画面に移動 省略可能 |
retourne au home page affiche-moi l'écran d'accueil retourne à l'écran d'accueil affiche l'accueil affiche-moi l'accueil ouvre l'accueil va à l'accueil affiche la page d'accueil retourne à la page d'accueil rentre à l'accueil accueil |
ビューがホーム画面に変わります。 |
閉じる 省略可能 |
Not supported |
アプリまたはスキルが閉じます。 |
終了 省略可能 |
sors de là |
アプリまたはスキルが終了します。 |
終了 省略可能 |
quitte [AppName] |
アプリまたはスキルが終了します。 |
開く 省略可能 |
|
アプリまたはスキルが開きます。 |
機能 | サンプル発話 | 想定されるレスポンス |
---|---|---|
これを観る 認定に必須 |
Not supported |
フォーカスがあるメディアの再生が開始されます。 |
これを再生 認定に必須 |
joue ça |
フォーカスがあるメディアの再生が開始されます。 |
方向ナビゲーション - 行く 認定に必須 |
va vers le haut monte vers le haut remonte va en bas descends faire défiler vers le bas va à gauche aller à gauche va à droite aller à droite |
D-Padコントローラーで上下左右を押した場合と同様に、アプリが上下左右へ移動します。 |
方向ナビゲーション - 移動 認定に必須 |
va vers le haut monte vers le haut remonte navigue en bas navigue vers le bas Naviguer à gauche Naviguer vers la gauche Naviguer à droite Naviguer vers la droite |
D-Padコントローラーで上下左右を押した場合と同様に、アプリが上下左右へ移動します。 |
方向スクロール 認定に必須 |
fais défiler vers le haut fais défiler en haut faire défiler vers le bas défiler vers le bas se déplacer vers le bas fais défiler à gauche faire défiler à gauche défiler à gauche se déplacer à droite fais défiler à droite faire défiler à droite défiler à droite se déplacer à droite |
D-Padコントローラーで上下左右を押した場合と同様に、アプリが上下左右にスクロールします。 |
ページ内で移動 認定に必須 |
page vers le haut Page vers le bas Page vers la gauche Page vers la droite |
D-Padコントローラーで上下左右を押した場合と同様に、アプリ内のページを上下左右に移動します。 |
動詞のない方向ナビゲーション 認定に必須 |
va en haut monte faire défiler vers le haut va en bas descends faire défiler vers le bas fais défiler à gauche va à gauche faire défiler à gauche se déplacer à gauche aller à gauche défiler à gauche fais défiler à droite va vers la droite fais défiler vers la droite déplace-toi vers la droite aller à droite défile à droite |
D-Padコントローラーで上下左右を押した場合と同様に、アプリが上下左右に移動します。 |
これ(それ)を選択する/選ぶ 認定に必須 |
sélectionne ça choisis ça |
フォーカスが置かれている対象が選択されます。 |
もっと表示する/見る 省略可能 |
montre moi en plus montre en plus encore |
さらに多くのアイテムが表示されます。たとえば、リストに表示されるアイテム数が限られている場合は、さらに多くのアイテムが取得されて表示されます。 |
詳細(情報)を表示する/見る 省略可能 |
montre des détails montre moi des détails voir plus d'infos |
さらに詳細な情報が表示されます。たとえば、情報が切り詰められている場合は、詳細情報が表示されます。 |
次のページを取得 認定に必須 |
prochain(e) suivant(e) next |
次のページの結果が画面に表示されます。 |
<タイトル>を再生 認定に必須 |
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 |
リクエストされたスポーツイベントに一致するメディアが(ユーザーへのおすすめメディアを選び出すアルゴリズムによって)再生されるか、検索結果リストがユーザーに表示されます。 |
<パートナー>アプリを起動 認定に必須 |
lance [AppName] |
リクエストされたアプリが起動し、再生可能なメディアのリストが表示されます。マルチモーダルデバイスのホームページテンプレートには、異なるカテゴリーにメディアが分類されて表示される可能性があります。 |
特殊文字のタイトルを起動 認定に必須 |
lance [AppName] |
リクエストされたアプリが起動し、再生可能なメディアのリストが表示されます。マルチモーダルデバイスには、異なるカテゴリーに分類される可能性のあるメディアが表示されるホームページテンプレートがあります。 |
コントロールの設定に移動 |
ouvre les paramètres de contrôles ouvre les paramètres va aux paramètres |
ビューがコントロールの設定に変わります。 |
ホーム画面に移動 省略可能 |
affiche-moi l'écran d'accueil retourne à l'écran d'accueil affiche l'accueil affiche-moi l'accueil ouvre l'accueil va à l'accueil affiche la page d'accueil retourne à la page d'accueil rentre à l'accueil accueil |
ビューがホーム画面に変わります。 |
閉じる 省略可能 |
Not supported |
アプリまたはスキルが閉じます。 |
終了 省略可能 |
sors d'ici |
アプリまたはスキルが終了します。 |
終了 省略可能 |
quitte [AppName] |
アプリまたはスキルが終了します。 |
開く 省略可能 |
|
アプリまたはスキルが開きます。 |
機能 | サンプル発話 | 想定されるレスポンス |
---|---|---|
これを観る 認定に必須 |
das anschauen/angucken |
フォーカスがあるメディアの再生が開始されます。 |
これを再生 認定に必須 |
spiel das ab? |
フォーカスがあるメディアの再生が開始されます。 |
方向ナビゲーション - 行く 認定に必須 |
geh/e nach oben nach oben/rauf/hinauf/hoch gehen gehe hoch geh rauf/hinauf nach unten/runter/hinunter gehen geh runter/nach unten/hinunter geh nach links geh nach rechts |
D-Padコントローラーで上下左右を押した場合と同様に、アプリが上下左右へ移動します。 |
方向ナビゲーション - 移動 認定に必須 |
nach oben bewegen nach unten bewegen nach links bewegen nach rechts bewegen |
D-Padコントローラーで上下左右を押した場合と同様に、アプリが上下左右へ移動します。 |
方向スクロール 認定に必須 |
scroll hoch scroll nach oben scroll rauf scrolle hinauf scrolle hoch scroll hier/dahin/dorthin runter scroll zum letzten runter scroll runter/hinunter/nach unten runter/hinunter/nach unten scrollen scroll nach links scroll links scroll nach rechts scroll rechts |
D-Padコントローラーで上下左右を押した場合と同様に、アプリが上下左右にスクロールします。 |
ページ内で移動 認定に必須 |
seite nach oben seite rauf seite hinauf seite hoch blätter hoch blätter runter seite runter/hinunter/nach unten blätter links seite nach links seite links blätter rechts seite nach rechts seite rechts |
D-Padコントローラーで上下左右を押した場合と同様に、アプリ内のページを上下左右に移動します。 |
動詞のない方向ナビゲーション 認定に必須 |
nach oben bewegen bätter hoch geh hoch scroll hoch scroll nach oben nach unten bewegen blätter runter scroll hier/dahin/dorthin runter geh runter/nach unten scroll hinunter/nach unten runter/hinunter gehen seite runter/hinunter/nach unten nach links bewegen blätter links seite nach? links scroll nach? links geh nach links nach rechts bewegen blätter rechts seite nach? rechts scroll nach? rechts geh nach rechts |
D-Padコントローラーで上下左右を押した場合と同様に、アプリが上下左右に移動します。 |
これ(それ)を選択する/選ぶ 認定に必須 |
nimm das wähl das aus? klick die an diese |
フォーカスが置かれている対象が選択されます。 |
もっと表示する/見る 省略可能 |
mehr ansehen/sehen zeig mir mehr zeig mir mehr davon zeig mir mehr auf [AppName] zeig mir mehr filme an? |
さらに多くのアイテムが表示されます。たとえば、リストに表示されるアイテム数が限られている場合は、さらに多くのアイテムが取得されて表示されます。 |
詳細(情報)を表示する/見る 省略可能 |
details ansehen/sehen zeig details an liefere/gib mir mehr details mehr details |
さらに詳細な情報が表示されます。たとえば、情報が切り詰められている場合は、詳細情報が表示されます。 |
次のページを取得 認定に必須 |
nächste nächstes das nächste spring/geh vor spring/geh vorwärts vor überspring das eins weiter/vorwärts weiter spring nach vorn spring nach vorn auf [AppName]/[DeviceBrand] nächstes im [DeviceLocation] nächstes auf [DeviceLocation]? [DeviceType]/[DeviceBrand] gib mir das nächste von [AppName] nächstes auf allen [DeviceType] |
次のページの結果が画面に表示されます。 |
<タイトル>を再生 認定に必須 |
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 |
リクエストされたスポーツイベントに一致するメディアが(ユーザーへのおすすめメディアを選び出すアルゴリズムによって)再生されるか、検索結果リストがユーザーに表示されます。 |
<パートナー>アプリを起動 認定に必須 |
starte [AppName] spiel/öffne [AppName] app starte [AppName] auf [DeviceBrand] |
リクエストされたアプリが起動し、再生可能なメディアのリストが表示されます。マルチモーダルデバイスのホームページテンプレートには、異なるカテゴリーにメディアが分類されて表示される可能性があります。 |
特殊文字のタイトルを起動 認定に必須 |
starte [AppName] spiel/öffne [AppName] app starte AppName auf [DeviceBrand] |
リクエストされたアプリが起動し、再生可能なメディアのリストが表示されます。マルチモーダルデバイスには、異なるカテゴリーに分類される可能性のあるメディアが表示されるホームページテンプレートがあります。 |
コントロールの設定に移動 |
Öffne die Einstellungen Einstellungen öffnen Gehe zu den Einstellungen Zu Einstellungen gehen Einstellungen aufrufen Ruf die Einstellungen auf zeige mir die eintellungen zeig mir meine w. lan einstellungen zeig mir meine start seiten einstellungen zeig meine start seiten feed einstellungen zeig mir die (toneinstellungen/geräteeinstellungen/erreichbarkeitseinstellungen/bedienungshilfeeinstellungen) öffne einstellungen öffne einstellungen auf [AppName] |
ビューがコントロールの設定に変わります。 |
ホーム画面に移動 省略可能 |
Zum Startbildschirm Zu Start Geh nach Hause Gehe zum Startbildschirm Zurück zu Start bring mich zum start bildschirm bring mich zum home screen geh zum home screen geh zur home seite geh zurück zum start bildschirm zeig home zeige mir die start seite zeig mir den start bildschirm zu start seite geh zur start seite |
ビューがホーム画面に変わります。 |
閉じる 省略可能 |
Not supported |
アプリまたはスキルが閉じます。 |
終了 省略可能 |
Not Supported |
アプリまたはスキルが終了します。 |
終了 省略可能 |
Not Supported |
アプリまたはスキルが終了します。 |
開く 省略可能 |
öffne [AppName] öffne [AppName] app öffne [AppName] auf [DeviceBrand] |
アプリまたはスキルが開きます。 |
機能 | サンプル発話 | 想定されるレスポンス |
---|---|---|
これを観る 認定に必須 |
इसे देखो इसको देखो |
フォーカスがあるメディアの再生が開始されます。 |
これを再生 認定に必須 |
इसे चलाओ यह चला दो इसे चला दो यह चलाओ |
フォーカスがあるメディアの再生が開始されます。 |
方向ナビゲーション - 行く 認定に必須 |
ऊपर जाओ ऊपर करो नीचे जाओ * नीचे जाना * *ambiguity with "move down" left जाना * बाएं जाओ * left पे जाओ * *ambiguity with "move left" right जाना right पे जाओ दायें जाओ *ambiguity with "move right" |
D-Padコントローラーで上下左右を押した場合と同様に、アプリが上下左右へ移動します。 |
方向ナビゲーション - 移動 認定に必須 |
ऊपर जाओ ऊपर करो नीचे जाओ * नीचे जाना * *ambiguity with "move down" left जाना * बाएं जाओ * left पे जाओ * *ambiguity with "move left" right जाना right पे जाओ दायें जाओ *ambiguity with "move right" |
D-Padコントローラーで上下左右を押した場合と同様に、アプリが上下左右へ移動します。 |
方向スクロール 認定に必須 |
उपर चलो ऊपर scroll ऊपर करो नीचे scroll करें नीचे की तरफ scroll करो scroll down करो left scroll करो left की तरफ scroll करो बायें की तरफ scroll करो right scroll करो right की तरफ scroll करो दाएँ की तरफ scroll करो |
D-Padコントローラーで上下左右を押した場合と同様に、アプリが上下左右にスクロールします。 |
ページ内で移動 認定に必須 |
पेज ऊपर करो पेज नीचे करो पेज को left पे ले जाओ पेज को right पे ले जाओ पेज को बाएँ ले जाओ पेज को दाएँ ले जाओ page नीचे करो page down करो page को बाएँ कर दो page left करो page को दाएँ करो page right करो |
D-Padコントローラーで上下左右を押した場合と同様に、アプリ内のページを上下左右に移動します。 |
動詞のない方向ナビゲーション 認定に必須 |
ऊपर ऊपर जाओ उपर चलो ऊपर करो नीचे नीचे जाओ नीचे चलो नीचे करो left बाएँ जाओ बाएँ बाएँ करो Right दाएँ जाओ दाएँ दाएँ करो |
D-Padコントローラーで上下左右を押した場合と同様に、アプリが上下左右に移動します。 |
これ(それ)を選択する/選ぶ 認定に必須 |
इसे चुनो इसको select करो |
フォーカスが置かれている対象が選択されます。 |
もっと表示する/見る 省略可能 |
और दिखाओ |
さらに多くのアイテムが表示されます。たとえば、リストに表示されるアイテム数が限られている場合は、さらに多くのアイテムが取得されて表示されます。 |
詳細(情報)を表示する/見る 省略可能 |
details दिखाओ जानकारी दिखाओ |
さらに詳細な情報が表示されます。たとえば、情報が切り詰められている場合は、詳細情報が表示されます。 |
次のページを取得 認定に必須 |
[GroupDeviceBrand] [HomeAutomationType] पर अगला लगाओ[GroupDeviceBrand] पर अगला लगाओ[GroupDeviceBrand] वाले [HomeAutomationType] पर अगला चलाना[AppName] पर इसके बाद वाला दो[AppName] पर मुझे next वाला दे देनाnext recipe अगली recipe[DeviceLocation] पर इसके बाद वाला दो[LocationNonSpecificQuantity] अगला चलाओ अगला/next [Episode] play करो[DeviceLocation] पर DeviceBrand अगला वाला दो |
次のページの結果が画面に表示されます。 |
<タイトル>を再生 認定に必須 |
[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/देखो |
リクエストされたスポーツイベントに一致するメディアが(ユーザーへのおすすめメディアを選び出すアルゴリズムによって)再生されるか、検索結果リストがユーザーに表示されます。 |
<パートナー>アプリを起動 認定に必須 |
netflix launch करो/करना/कीजिए/करिएगा |
リクエストされたアプリが起動し、再生可能なメディアのリストが表示されます。マルチモーダルデバイスのホームページテンプレートには、異なるカテゴリーにメディアが分類されて表示される可能性があります。 |
特殊文字のタイトルを起動 認定に必須 |
facebook app launch करो/करना/कीजिए/करिएगा |
リクエストされたアプリが起動し、再生可能なメディアのリストが表示されます。マルチモーダルデバイスには、異なるカテゴリーに分類される可能性のあるメディアが表示されるホームページテンプレートがあります。 |
コントロールの設定に移動 |
|
ビューがコントロールの設定に変わります。 |
ホーム画面に移動 省略可能 |
home पर जाओ/जाना/जाइए/चलो/चलना home पे जाओ/जाना/जाइए/चलो/चलना |
ビューがホーム画面に変わります。 |
閉じる 省略可能 |
netflix बंद करना netflix close करो/कीजिए |
アプリまたはスキルが閉じます。 |
終了 省略可能 |
1. netflix से बाहर निकलो/निकलना/आओ 2. netflix exit करो/करना |
アプリまたはスキルが終了します。 |
終了 省略可能 |
netflix quit करना netflix quit कीजिए |
アプリまたはスキルが終了します。 |
開く 省略可能 |
netflix खोलो netflix खोलना netflix open करना |
アプリまたはスキルが開きます。 |
機能 | サンプル発話 | 想定されるレスポンス |
---|---|---|
これを観る 認定に必須 |
guarda questo metti questo |
フォーカスがあるメディアの再生が開始されます。 |
これを再生 認定に必須 |
riproduci questo |
フォーカスがあるメディアの再生が開始されます。 |
方向ナビゲーション - 行く 認定に必須 |
vai su Vai giù / scendi voglio andare verso sinistra voglio andare verso destra |
D-Padコントローラーで上下左右を押した場合と同様に、アプリが上下左右へ移動します。 |
方向ナビゲーション - 移動 認定に必須 |
salta su Passa giù /passa in giù/salta giù / scendi/ salta verso il basso voglio andare verso sinistra voglio andare verso destra |
D-Padコントローラーで上下左右を押した場合と同様に、アプリが上下左右へ移動します。 |
方向スクロール 認定に必須 |
scorri verso l'alto scorri giù / scorri verso il basso /scrolla giù scorri verso sinistra scorri verso destra |
D-Padコントローラーで上下左右を押した場合と同様に、アプリが上下左右にスクロールします。 |
ページ内で移動 認定に必須 |
pagina in su pagina di sotto pagina sinistra/pagina di sinistra pagina destra/pagina di destra |
D-Padコントローラーで上下左右を押した場合と同様に、アプリ内のページを上下左右に移動します。 |
動詞のない方向ナビゲーション 認定に必須 |
su giù verso sinistra verso destra |
D-Padコントローラーで上下左右を押した場合と同様に、アプリが上下左右に移動します。 |
これ(それ)を選択する/選ぶ 認定に必須 |
seleziona questo scegli questo |
フォーカスが置かれている対象が選択されます。 |
もっと表示する/見る 省略可能 |
mostra mi di più |
さらに多くのアイテムが表示されます。たとえば、リストに表示されるアイテム数が限られている場合は、さらに多くのアイテムが取得されて表示されます。 |
詳細(情報)を表示する/見る 省略可能 |
fornisci dettagli mostra più dettagli mostra i dettagli |
さらに詳細な情報が表示されます。たとえば、情報が切り詰められている場合は、詳細情報が表示されます。 |
次のページを取得 認定に必須 |
prossima / seguente / avanti / salta / successivo |
次のページの結果が画面に表示されます。 |
<タイトル>を再生 認定に必須 |
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 |
リクエストされたスポーツイベントに一致するメディアが(ユーザーへのおすすめメディアを選び出すアルゴリズムによって)再生されるか、検索結果リストがユーザーに表示されます。 |
<パートナー>アプリを起動 認定に必須 |
lancia [AppName] apri [AppName] |
リクエストされたアプリが起動し、再生可能なメディアのリストが表示されます。マルチモーダルデバイスのホームページテンプレートには、異なるカテゴリーにメディアが分類されて表示される可能性があります。 |
特殊文字のタイトルを起動 認定に必須 |
apri [special character AppName] |
リクエストされたアプリが起動し、再生可能なメディアのリストが表示されます。マルチモーダルデバイスには、異なるカテゴリーに分類される可能性のあるメディアが表示されるホームページテンプレートがあります。 |
コントロールの設定に移動 |
vai alle impostazioni (di controllo) apri le impostazioni (di controllo) |
ビューがコントロールの設定に変わります。 |
ホーム画面に移動 省略可能 |
vai alla home |
ビューがホーム画面に変わります。 |
閉じる 省略可能 |
|
アプリまたはスキルが閉じます。 |
終了 省略可能 |
esci |
アプリまたはスキルが終了します。 |
終了 省略可能 |
Chiudi [AppName] |
アプリまたはスキルが終了します。 |
開く 省略可能 |
|
アプリまたはスキルが開きます。 |
機能 | サンプル発話 | 想定されるレスポンス |
---|---|---|
これを観る 認定に必須 |
これ見せて |
フォーカスがあるメディアの再生が開始されます。 |
これを再生 認定に必須 |
これ を再生して |
フォーカスがあるメディアの再生が開始されます。 |
方向ナビゲーション - 行く 認定に必須 |
上に行って 下に行って 左側に行って 右の方へ行って |
D-Padコントローラーで上下左右を押した場合と同様に、アプリが上下左右へ移動します。 |
方向ナビゲーション - 移動 認定に必須 |
上に移動して 下の方へ移動して 左の方へ移動して 右側に移動して |
D-Padコントローラーで上下左右を押した場合と同様に、アプリが上下左右へ移動します。 |
方向スクロール 認定に必須 |
上にスクロールして 下にスクロールして 左の方にスクロールして 右側へスクロールして |
D-Padコントローラーで上下左右を押した場合と同様に、アプリが上下左右にスクロールします。 |
ページ内で移動 認定に必須 |
画面の上部へ ページの下へ 画面の左へ ページの右の方へ |
D-Padコントローラーで上下左右を押した場合と同様に、アプリ内のページを上下左右に移動します。 |
動詞のない方向ナビゲーション 認定に必須 |
上* 下 左* 右* |
D-Padコントローラーで上下左右を押した場合と同様に、アプリが上下左右に移動します。 |
これ(それ)を選択する/選ぶ 認定に必須 |
これ選んで |
フォーカスが置かれている対象が選択されます。 |
もっと表示する/見る 省略可能 |
もっと見せて |
さらに多くのアイテムが表示されます。たとえば、リストに表示されるアイテム数が限られている場合は、さらに多くのアイテムが取得されて表示されます。 |
詳細(情報)を表示する/見る 省略可能 |
詳細を表示して |
さらに詳細な情報が表示されます。たとえば、情報が切り詰められている場合は、詳細情報が表示されます。 |
次のページを取得 認定に必須 |
次 スキップ 次に行って[DeviceLocation]で次に行って[DeviceLocation]の[DeviceBrand]で次に行って[LocationNonSpecificQuantity]で次を再生[Episode]を再生して[VideoName]の[Episode]を再生[DeviceBrand]で再生 |
次のページの結果が画面に表示されます。 |
<タイトル>を再生 認定に必須 |
[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]で見せて |
リクエストされたスポーツイベントに一致するメディアが(ユーザーへのおすすめメディアを選び出すアルゴリズムによって)再生されるか、検索結果リストがユーザーに表示されます。 |
<パートナー>アプリを起動 認定に必須 |
|
リクエストされたアプリが起動し、再生可能なメディアのリストが表示されます。マルチモーダルデバイスのホームページテンプレートには、異なるカテゴリーにメディアが分類されて表示される可能性があります。 |
特殊文字のタイトルを起動 認定に必須 |
|
リクエストされたアプリが起動し、再生可能なメディアのリストが表示されます。マルチモーダルデバイスには、異なるカテゴリーに分類される可能性のあるメディアが表示されるホームページテンプレートがあります。 |
コントロールの設定に移動 |
設定を開いて 設定を見せて 設定に戻って 設定に行って |
ビューがコントロールの設定に変わります。 |
ホーム画面に移動 省略可能 |
[TargetName]に行って |
ビューがホーム画面に変わります。 |
閉じる 省略可能 |
|
アプリまたはスキルが閉じます。 |
終了 省略可能 |
[3p App]を閉じて |
アプリまたはスキルが終了します。 |
終了 省略可能 |
[3p App]を終了して |
アプリまたはスキルが終了します。 |
開く 省略可能 |
|
アプリまたはスキルが開きます。 |
機能 | サンプル発話 | 想定されるレスポンス |
---|---|---|
これを観る 認定に必須 |
Assistir/assista/assiste isso |
フォーカスがあるメディアの再生が開始されます。 |
これを再生 認定に必須 |
Reproduzir/Reproduza/Reproduz isso |
フォーカスがあるメディアの再生が開始されます。 |
方向ナビゲーション - 行く 認定に必須 |
Subir/suba/sobe Vá/vai/ir para baixo Vá/vai/ir para esquerda Vá/vai/ir para direita |
D-Padコントローラーで上下左右を押した場合と同様に、アプリが上下左右へ移動します。 |
方向ナビゲーション - 移動 認定に必須 |
Mover/mova/move pra cima Mova/move/mover para baixo Mova/move/mover para a esquerda Mova/move/mover para direita |
D-Padコントローラーで上下左右を押した場合と同様に、アプリが上下左右へ移動します。 |
方向スクロール 認定に必須 |
Rolar/rola/role para cima Rola/role/rolar para baixo Rola/role/rolar para a esquerda Rola/role/rolar para a direita |
D-Padコントローラーで上下左右を押した場合と同様に、アプリが上下左右にスクロールします。 |
ページ内で移動 認定に必須 |
página para cima/ ir para cima na página Página para baixo Pagina para esquerda Página para direita |
D-Padコントローラーで上下左右を押した場合と同様に、アプリ内のページを上下左右に移動します。 |
動詞のない方向ナビゲーション 認定に必須 |
Ir/vai/vá pra cima Ir/vai/vá pra baixo Ir/vai/vá pra esquerda Ir/vai/vá pra direita |
D-Padコントローラーで上下左右を押した場合と同様に、アプリが上下左右に移動します。 |
これ(それ)を選択する/選ぶ 認定に必須 |
escolher isso/esse/essa selecionar isso/essa/ esse esse aqui / esse/ essa aqui/ essa/ isso aqui/ isso |
フォーカスが置かれている対象が選択されます。 |
もっと表示する/見る 省略可能 |
Mostrar/mostra/mostre mais |
さらに多くのアイテムが表示されます。たとえば、リストに表示されるアイテム数が限られている場合は、さらに多くのアイテムが取得されて表示されます。 |
詳細(情報)を表示する/見る 省略可能 |
ver todos os detalhes do progama/show |
さらに詳細な情報が表示されます。たとえば、情報が切り詰められている場合は、詳細情報が表示されます。 |
次のページを取得 認定に必須 |
próximo/próxima |
次のページの結果が画面に表示されます。 |
<タイトル>を再生 認定に必須 |
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 |
リクエストされたスポーツイベントに一致するメディアが(ユーザーへのおすすめメディアを選び出すアルゴリズムによって)再生されるか、検索結果リストがユーザーに表示されます。 |
<パートナー>アプリを起動 認定に必須 |
abrir [AppName] |
リクエストされたアプリが起動し、再生可能なメディアのリストが表示されます。マルチモーダルデバイスのホームページテンプレートには、異なるカテゴリーにメディアが分類されて表示される可能性があります。 |
特殊文字のタイトルを起動 認定に必須 |
abrir [special character AppName] |
リクエストされたアプリが起動し、再生可能なメディアのリストが表示されます。マルチモーダルデバイスには、異なるカテゴリーに分類される可能性のあるメディアが表示されるホームページテンプレートがあります。 |
コントロールの設定に移動 |
vá para Configurações ir para Configurações abrir Configurações abra Configurações Configurações acessar Configurações acesse Configurações |
ビューがコントロールの設定に変わります。 |
ホーム画面に移動 省略可能 |
vá para a página principal/ vá para a tela principal |
ビューがホーム画面に変わります。 |
閉じる 省略可能 |
fechar [AppName] |
アプリまたはスキルが閉じます。 |
終了 省略可能 |
Sair [AppName] sai [AppName] saia [AppName] |
アプリまたはスキルが終了します。 |
終了 省略可能 |
sair do [AppName] |
アプリまたはスキルが終了します。 |
開く 省略可能 |
|
アプリまたはスキルが開きます。 |
機能 | サンプル発話 | 想定されるレスポンス |
---|---|---|
これを観る 認定に必須 |
ver lo* ver este* |
フォーカスがあるメディアの再生が開始されます。 |
これを再生 認定に必須 |
reproduce esto reproduce este |
フォーカスがあるメディアの再生が開始されます。 |
方向ナビゲーション - 行く 認定に必須 |
ve te arriba ve te abajo ve te a la izquierda ve a la izquierda ve te a la derecha ve a la derecha |
D-Padコントローラーで上下左右を押した場合と同様に、アプリが上下左右へ移動します。 |
方向ナビゲーション - 移動 認定に必須 |
muéve te hacia arriba muéve te hacia abajo muéve te hacia izquierda muéve te hacia derecha |
D-Padコントローラーで上下左右を押した場合と同様に、アプリが上下左右へ移動します。 |
方向スクロール 認定に必須 |
despláza te hacia arriba despláza te para arriba despláza te hacia abajo despláza te para abajo despláza te hacia izquierda despláza te para izquierda despláza te hacia derecha despláza te para derecha |
D-Padコントローラーで上下左右を押した場合と同様に、アプリが上下左右にスクロールします。 |
ページ内で移動 認定に必須 |
arriba de la página abajo de la página izquierda de la página derecha de la página |
D-Padコントローラーで上下左右を押した場合と同様に、アプリ内のページを上下左右に移動します。 |
動詞のない方向ナビゲーション 認定に必須 |
ve te arriba ve te abajo izquierda ve te a la derecha ve a la derecha |
D-Padコントローラーで上下左右を押した場合と同様に、アプリが上下左右に移動します。 |
これ(それ)を選択する/選ぶ 認定に必須 |
selecciona esto selecciona este selecciona aquel |
フォーカスが置かれている対象が選択されます。 |
もっと表示する/見る 省略可能 |
muestra más muestra qué más hay quiero ver algo más veamos un poco más veamos algo más |
さらに多くのアイテムが表示されます。たとえば、リストに表示されるアイテム数が限られている場合は、さらに多くのアイテムが取得されて表示されます。 |
詳細(情報)を表示する/見る 省略可能 |
muestra detalles enseña detalles ver detalles |
さらに詳細な情報が表示されます。たとえば、情報が切り詰められている場合は、詳細情報が表示されます。 |
次のページを取得 認定に必須 |
siguiente salta muestra el siguiente siguiente en el sonos próxima en el jardín |
次のページの結果が画面に表示されます。 |
<タイトル>を再生 認定に必須 |
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 |
リクエストされたスポーツイベントに一致するメディアが(ユーザーへのおすすめメディアを選び出すアルゴリズムによって)再生されるか、検索結果リストがユーザーに表示されます。 |
<パートナー>アプリを起動 認定に必須 |
lanza la app de netflix lanza netflix |
リクエストされたアプリが起動し、再生可能なメディアのリストが表示されます。マルチモーダルデバイスのホームページテンプレートには、異なるカテゴリーにメディアが分類されて表示される可能性があります。 |
特殊文字のタイトルを起動 認定に必須 |
lanza i. b. e. x. treinta y cinco |
リクエストされたアプリが起動し、再生可能なメディアのリストが表示されます。マルチモーダルデバイスには、異なるカテゴリーに分類される可能性のあるメディアが表示されるホームページテンプレートがあります。 |
コントロールの設定に移動 |
abre configuración ve a configuración ve te a configuración configuración ir a configuración abrir configuración |
ビューがコントロールの設定に変わります。 |
ホーム画面に移動 省略可能 |
página inicial ir a la página principal lléva me a la página principal pantalla de inicio menú de inicio pantalla principal menú principal |
ビューがホーム画面に変わります。 |
閉じる 省略可能 |
cierra netflix |
アプリまたはスキルが閉じます。 |
終了 省略可能 |
cierra netflix |
アプリまたはスキルが終了します。 |
終了 省略可能 |
quitar netflix |
アプリまたはスキルが終了します。 |
開く 省略可能 |
|
アプリまたはスキルが開きます。 |
UI状態レポートの送信
ユーザーの画面に現在表示されているアイテムについてAlexaに通知するために、UI状態レポートを送信する必要があります。
VSK対応アプリ
VSK対応アプリの場合、Alexa Client Library経由でUI状態レポートを送信します。UIコントローラーを使用するには、Alexa Client Libraryバージョン1.4.9以降が必要です。Alexa Client Libraryのダウンロードとインストールの詳細については、手順3: Alexa Client Libraryを統合するを参照してください。
手順1 - Alexa Client Libraryのサポート対象機能にUIコントローラーを追加する
UI状態レポートを送信する前に、Alexa Client LibraryにUIコントローラーのサポートを追加する必要があります。initializeAlexaClient
メソッドで、getAlexaUIControllerCapability
をsupportedCapabilities
のリストに追加します。
private void initializeAlexaClient() {
// AlexaClientManagerの共有インスタンスを取得します。
final AlexaClientManager clientManager = AlexaClientManager.getSharedInstance();
// スキルIDを収集します。
final String alexaSkillId = "<スキルIDを挿入>";
// スキルでサポートされている機能のリストを作成します。
final List<AlexaVideoCapability> supportedCapabilities = new ArrayList<>();
supportedCapabilities.add(getAlexaChannelControllerCapability());
supportedCapabilities.add(getAlexaPlaybackControllerCapability());
supportedCapabilities.add(getAlexaRemoteVideoPlayerCapability());
supportedCapabilities.add(getAlexaSeekControllerCapability());
supportedCapabilities.add(getAlexaKeypadControllerCapability());
supportedCapabilities.add(getAlexaUIControllerCapability()); //UIコントローラーのサポートを追加します。
手順2 - Alexa Client Libraryを使用してUIレポートを送信する
UI状態レポートを送信するには、Alexa Client LibraryのAlexaClientManager
クラスのsetUIState
メソッドを呼び出します。
public AlexaClientManager setUIState(Map<String, String> states) {
Log.i(TAG, "setUIState");
alexaClientEventManager.onUIStateSet(states);
return this;
}
setUIState
メソッドは、states
パラメーターを受け取ります。states
パラメーターは、画面に表示される要素を表すユーザーインターフェースプロパティのマップです。設定するプロパティ名(uiElements
、focusedUIElement
)を表すキー文字列は、このプロパティに関連付けられた値キーのJSONエンコードコンテンツである値の文字列と一致します。
VSK対応デバイス
サードパーティ製デバイスの場合は、UIの状態で実行可能な変更があるたびに、UI状態レポートをPOSTリクエストとしてAlexaイベントゲートウェイエンドポイントに送信します。UI状態レポートイベントを送信する手順を以下に示します。
手順1 - イベントを送信するアクセス権限をリクエストする
UI状態レポートイベントはAlexaイベントゲートウェイに送信されます。Alexaイベントゲートウェイでは、ユーザーごとに認証トークンが必要です。Alexaコンソールでスキルを検索し、左側の [アクセス権限] タブを選択して、[Alexaイベントを送る] をオンにします。この画面に表示されるAlexaクライアントIDとAlexaクライアントシークレットを記録します。これらは次の手順で、Login with Amazon(LWA)によるユーザー認証に使用されます。詳細については、Alexaドキュメントのスキルのカスタマー情報のアクセス権限を参照してください(状態レポートはAlexaスマートホームAPIでよく使用されます)。
手順2 - AcceptGrant
ディレクティブを処理するコードを追加する
Alexaイベントを送信するアクセス権限をリクエストすると、スキルのLambda関数がユーザーごとにAcceptGrantディレクティブを受け取ります。AcceptGrant
ディレクティブには、ユーザーの認証トークンの取得に使用する認可コードが含まれています。ユーザーがいるリージョンと同じリージョンで、トークンを取得して格納するためのコードを追加する必要があります。AcceptGrant
ディレクティブの例を以下に示します。
{
"directive": {
"header": {
"namespace": "Alexa.Authorization",
"name": "AcceptGrant",
"messageId": "<メッセージID>",
"payloadVersion": "3"
},
"payload": {
"grant": {
"type": "OAuth2.AuthorizationCode",
"code": "VGhpcyBpcyBhbiBhdXRob3JpemF0aW9uIGNvZGUuIDotKQ=="
},
"grantee": {
"type": "BearerToken",
"token": "access-token-from-skill"
}
}
}
}
AcceptGrantディレクティブのペイロードの詳細
フィールド | 説明 | 型 |
---|---|---|
grant |
Amazon Alexaシステムでユーザーを識別する情報です。 | オブジェクト |
grant.type |
グラントのタイプです。現在、有効な値はOAuth2.AuthorizationCode のみです。 |
文字列 |
grant.code |
ユーザーの認可コードです。 | 文字列 |
grantee |
リンクされたアカウントサービスまたはシステムでユーザーを識別する情報です。 | オブジェクト |
grantee.type |
認可されるユーザーのタイプです。現在、有効な値はBearerToken のみです。 |
文字列 |
grantee.token |
アカウントのリンクプロセス中にAlexaが受け取るユーザーアクセストークンです。 | 文字列 |
AcceptGrant
ディレクティブが正常に処理された場合は、AcceptGrant.Responseイベントで応答します。
AcceptGrantレスポンスイベントの例
{
"event": {
"header": {
"namespace": "Alexa.Authorization",
"name": "AcceptGrant.Response",
"messageId": "<メッセージID>",
"payloadVersion": "3"
},
"payload": {}
}
}
AcceptGrant
ディレクティブを正常に処理できない場合は、Alexa.Authorization.ErrorResponse
イベントで応答します。処理が失敗する理由の一部を以下に示します。
- Login with Amazonを呼び出して、アクセストークンやリフレッシュトークンの認可コードを交換することができません。
- ユーザーのアクセストークンやリフレッシュトークンを格納できません。
- アクセストークンやリフレッシュトークンの取得と保存を試行中に何らかのエラーが発生しました。
Alexa.Authorization.ErrorResponse
の例を以下に示します。
{
"event": {
"header": {
"messageId": "abc-123-def-456",
"namespace": "Alexa.Authorization",
"name": "ErrorResponse",
"payloadVersion": "3"
},
"payload": {
"type": "ACCEPT_GRANT_FAILED",
"message": "<理由>のため、AcceptGrantディレクティブを処理できませんでした"
}
}
}
AcceptGrant
の処理中にエラーが発生すると、ユーザーはスキルを有効にできなくなります。
詳細については、次のリンク先を参照してください。
手順3 - 検出中にプロパティがプロアクティブに報告されることを指定する
AlexaはDiscoveryインターフェースを介してDiscover
ディレクティブを送信し、アプリの機能を把握します。UIController
インターフェースのサポートを宣言するだけでなく、検出中に変更レポートを送信するよう指定する必要があります。そのためには、検出レスポンスでプロパティがproactivelyReported
であることを示します。
Discover
ディレクティブへのレスポンスを構成して、UIController
機能のサポートを示す方法は次のとおりです。
{
"event": {
"header": {
"namespace": "Alexa.Discovery",
"name": "Discover.Response",
"payloadVersion": "3.0",
"messageId": "abc-123-def-456"
},
"payload": {
"endpoints": [
{
"endpointId": "uniqueIdOfEndpoint",
"friendlyName": "リビングルームのテレビ",
"description": "ユーザー向けに表示される説明",
"cookie": {
},
"capabilities": [
{
"type": "AlexaInterface",
"interface": "Alexa.UIController",
"version": "3.0",
"properties": {
"supported": [
{
"name": "uiElements"
},
{
"name": "focusedUIElement"
}
],
"proactivelyReported": true,
"retrievable": false
}
}
]
}
]
}
}
}
MediaDetailsNavigator
インターフェースもサポートする予定がある場合は、ここでその機能を宣言できます。MediaDetailsNavigator
インターフェースを使用すると、画面上の特定のアイテムに関する詳細を表示するユーザーリクエストを処理できます。詳細については、MediaDetailsNavigator
のUI状態レポートの送信セクションを参照してください。状態レポートと認可の全般的な情報については、以下を参照してください。
手順4 - AlexaイベントゲートウェイにUI状態レポートを送信する
最後の手順として、レポート可能なプロパティが変更されたときに、AlexaイベントゲートウェイへのUI状態レポートの送信を開始します。何らかの理由でUIの状態が変わったら、UI状態レポートを送信します。イベントゲートウェイに送信する各メッセージには、HTTPヘッダーとメッセージの本文に認証トークンを含める必要があります。
UI状態をAlexaイベントゲートウェイに送信するには、次のようにリクエストヘッダーを送信します。
POST /v3/events HTTP/1.1
Host: api.amazonalexa.com
Authorization: Bearer <access-token-from-Amazon>
Content-Type: application/json
(<access-token-from-Amazon>
は、上記の手順2で取得した実際の認証トークンに変更してください。) リクエスト本文には、UI状態レポートの例とスキーマで説明されているように、UI状態の詳細を含むJSONオブジェクトが含まれている必要があります。詳細については、次のセクションの [例] タブを参照してください。
認可の詳細については、Alexaドキュメントの以下の項目を参照してください。
UI状態レポートの例とスキーマ
以下のタブでは、UI状態レポートの例(サンプル入力値を表示)とスキーマ(例ではなくデータ型を表示)を示します。スキーマの視覚的な階層もツリー図で示しています。
POST /v3/events HTTP/1.1
Host: api.amazonalexa.com
Authorization: Bearer <access-token-from-Amazon>
Content-Type: application/json
{
"context": {
"properties": [
]
},
"event": {
"header": {
"messageId": "abc-123-def-456",
"namespace": "Alexa",
"name": "ChangeReport",
"payloadVersion": "3"
},
"endpoint": {
"scope": {
"type": "AMAZON.BearerToken",
"token": "access-token-from-Amazon"
},
"endpointId": "endpoint-001"
},
"payload": {
"change": {
"cause": {
"type": "PHYSICAL_INTERACTION"
},
"properties": [
{
"namespace": "Alexa.UIController",
"name": "uiElements",
"value": {
"scene": {
"sceneId": "sceneId-001"
},
"elements": [
{
"elementId": "elementId_10",
"entity": {
"type": "AMAZON.ItemList"
},
"uiSupportedActions": [
"SCROLL_DOWN",
"SCROLL_FORWARD"
],
"elements": [
{
"elementId": "elementId_11",
"entity": {
"type": "AMAZON.VideoObject",
"name": {
"value": "スーパーバッド 童貞ウォーズ"
},
"externalIds": {
"externalIdNamespace": "e99e067f-9112-4642-9853-b6401322964d"
}
},
"ordinal": 1,
"uiSupportedActions": [
"SELECT"
]
},
{
"elementId": "elementId_12",
"entity": {
"type": "AMAZON.VideoObject",
"name": {
"value": "ジム・キャリーはMr.ダマー"
},
"externalIds": {
"mediaBrowseId": "d9fd6168-81b8-4a28-a660-ba35141ca5b6"
}
},
"ordinal": 2,
"uiSupportedActions": [
"SELECT"
]
},
{
"elementId": "elementId_13",
"entity": {
"type": "AMAZON.VideoObject",
"name": {
"value": "ハングオーバー!消えた花ムコと史上最悪の二日酔い"
},
"externalIds": {
"mediaBrowseId": "08cb2390-2511-4df7-84c4-457a98fb738c"
}
},
"ordinal": 2,
"uiSupportedActions": [
"SELECT"
]
}
]
}
]
},
"timeOfSample": "2017-02-03T16:20:50.52Z",
"uncertaintyInMilliseconds": 0
},
{
"namespace": "Alexa.UIController",
"name": "focusedUIElement",
"value": {
"scene": {
"sceneId": "sceneId-001"
},
"element": {
"elementId": "elementId_11",
"entity": {
"type": "AMAZON.VideoObject",
"name": {
"value": "スーパーバッド 童貞ウォーズ"
},
"externalIds": {
"externalIdNamespace": "e99e067f-9112-4642-9853-b6401322964d"
}
},
"ordinal": 1,
"uiSupportedActions": [
"SELECT"
]
}
},
"timeOfSample": "2017-02-03T16:20:50.52Z",
"uncertaintyInMilliseconds": 0
}
]
}
}
}
}
{
"context": {
"properties": []
},
"event": {
"header": {
"messageId": string,
"namespace": "Alexa",
"name": "ChangeReport",
"payloadVersion": "3"
},
"endpoint": {
"scope": {
"type": "AMAZON.BearerToken",
"token": string
},
"endpointId": string
},
"payload": {
"change": {
"cause": {
"type": "PHYSICAL_INTERACTION"
},
"properties": [
{
"namespace": "Alexa.UIController",
"name": "uiElements",
"value": {
"scene": {
"sceneId": string
},
"elements": [
{
"elementId": string,
"entity": {
"type": enum<EntityTypes>
},
"uiSupportedActions": [
list<uiSupportedActions>
],
"elements": [
{
"elementId": string,
"entity": {
"type": enum<EntityTypes>,
"name": {
"value": string
},
"externalIds": {
map<String>
}
},
"ordinal": Integer,
"uiSupportedActions": [
list<uiSupportedActions>
]
}
]
}
]
},
"timeOfSample": string (ISO 8601),
"uncertaintyInMilliseconds": integer
},
{
"namespace": "Alexa.UIController",
"name": "focusedUIElement",
"value": {
"scene": {
"sceneId": string
},
"element": {
"elementId": string,
"entity": {
"type": enum<EntityTypes>,
"name": {
"value": string,
"variants": string
},
"externalIds": {
map<String>
}
},
"ordinal": Integer,
"uiSupportedActions": [
list<uiSupportedActions>
]
}
},
"timeOfSample": string (ISO 8601),
"uncertaintyInMilliseconds": integer
}
]
}
}
}
}
object ├── context object │ └── properties array[object] └── event object ├── header object │ ├── messageId string │ ├── namespace enum => "Alexa" │ ├── name enum => "ChangeReport" │ └── payloadVersion string => "3" ├── endpoint object │ ├── scope object │ │ ├── type enum => "AMAZON.BearerToken" │ │ └── token string │ └── endpointId string └── payload object └── change object ├── cause object │ └── type enum => "PHYSICAL_INTERACTION" └── properties array[object] ├── namespace enum => "Alexa.UIController" ├── name enum => "uiElements" └── value object ├── scene object │ └── sceneId string ├── elements array[object] │ ├── elementId string │ ├── entity object │ │ └── type enum => Enum<EntityTypes> │ ├── uiSupportedActions array[enum] => Enum<uiSupportedActions> │ └── elements array[object] │ ├── elementId string │ ├── entity object │ │ ├── type => Enum<EntityTypes> │ │ ├── name object │ │ │ ├── value string │ │ │ └── variants string │ │ └── externalIds map │ ├── ordinal integer │ └── uiSupportedActions array[enum] => Enum<uiSupportedActions> ├── timeOfSample string ISO 8601 ├── uncertaintyInMilliseconds integer ├── namespace enum => "Alexa.UIController" ├── name enum => "focusedUIElement" └── value object ├── scene object │ └── sceneId string ├── element object │ ├── elementId string │ ├── entity object │ │ ├── type enum => Enum<EntityTypes> │ │ └── name object │ │ ├── value string │ │ └── variants string │ └── uiSupportedActions array[enum] => Enum<uiSupportedActions> ├── timeOfSample string └── uncertaintyInMilliseconds integer
(context
オブジェクトとproperties
オブジェクトは、Fire TVの実装では使用されません。context
オブジェクトに含まれるのは、ほかのAlexaコンポーネント(Alexa.PowerState
など)からの更新のみです。変更レポートイベントがトリガーされたとき、ほかのコンポーネントからの状態の更新がない場合は空のままにします。)
データ構造
このセクションでは、上記の状態レポートスキーマのデータ構造について説明します。これらのツリー図は上記のスキーマに似ていますが、ここではUI状態レポートのuiElements
セクションとfocusedUIElement
セクションに必要なスキーマを対にして示します。
uiElements
とfocusedUIElement
のスキーマ
properties
配列には、2つの主要なオブジェクトがあります。1つはuiElements
のnamespace
で、もう1つはfocusedUIElement
のnamespace
です。この2つのスキーマは若干異なります。
uiElements
は、画面上のすべての要素をリストします。このセクションでは、elements
配列(複数形)が使用されます。同じようにelements
と呼ばれる入れ子になった配列も含まれ、サブ要素の省略可能なリストを提供できます。focusedUIElement
には、フォーカスがある要素がリストされます。このセクションではelement
オブジェクト(単数形)が使用されます。
以下のタブでは、uiElements
リストとfocusedUIElement
リストのそれぞれ異なるスキーマを示します。
├── namespace enum => "Alexa.UIController" ├── name enum => "uiElements" └── value object ├── scene object │ └── sceneId string ├── elements array[object] │ ├── elementId string │ ├── entity object │ │ └── type enum => Enum<EntityTypes> │ ├── uiSupportedActions array[enum] => Enum<uiSupportedActions> │ └── elements array[object] │ ├── elementId string │ ├── entity object │ │ ├── type => Enum<EntityTypes> │ │ ├── name object │ │ │ ├── value string │ │ │ └── variants string │ │ └── externalIds map │ ├── ordinal integer │ └── uiSupportedActions array[enum] => Enum<uiSupportedActions> ├── timeOfSample string ISO 8601 └── uncertaintyInMilliseconds integer
├── namespace enum => "Alexa.UIController" ├── name enum => "focusedUIElement" └── value object ├── scene object │ └── sceneId string ├── element object │ ├── elementId string │ ├── entity object │ │ ├── type enum => Enum<EntityTypes> │ │ └── name object │ │ ├── value string │ │ └── variants string │ └── uiSupportedActions array[enum] => Enum<uiSupportedActions> ├── timeOfSample string └── uncertaintyInMilliseconds integer
ペイロードの定義
次の表は、送信するUI状態レポートのペイロードを定義したものです。uiElements
セクションとfocusedUIElement
セクションで繰り返される要素(uiSupportedActions
など)の定義は同じです。
フィールド | 説明 | データ型 |
---|---|---|
change 必須 |
状態の変更に関する詳細が含まれます。 | オブジェクト |
cause 必須 |
状態の変更の理由を示します。
|
オブジェクト |
type 必須 |
状態の変更のタイプです。Fire TVの実装で使用できるオプションは AMAZON.PHYSICAL_INTERACTION です。
|
列挙型 |
properties 省略可能 |
状態変更に関する詳細が含まれます。properties 要素には、uiElements (要素のリスト)とfocusedUIElement オブジェクトの両方に関する状態変更の詳細が含まれます。
|
配列 |
namespace 必須 |
ペイロードの名前空間です。Fire TVの実装で使用できるオプションは Alexa.UIController です。
|
文字列 |
name 必須 |
ペイロードのインターフェースの名前です。uiElement とfocusedUIElement の2つのオプションを使用できます。要素のリストを提供する場合は、uiElement を使用します。フォーカスがある要素についてレポートする場合は、focusedUIElement を使用します。詳細とコンテキストについては、UI状態レポートの例を参照してください。
例: |
文字列 |
value 省略可能 |
ユーザーの画面上の要素を記述するscene オブジェクトが含まれます。
|
オブジェクト |
scene 必須 |
ユーザーのUIに表示されるシーンに関する情報を含むsceneId プロパティが含まれます。
|
オブジェクト |
sceneId 必須 |
ユーザーのUIでレンダリングされたシーンのIDです。
例: |
文字列 |
elements 省略可能 |
このシーンでレンダリングされたUI要素のリストです。uiElements 状態レポートでのみ使用されます。
|
配列 |
element 必須 |
このシーンでビジュアルフォーカスがある要素です。focusedUIElement 状態レポートでのみ使用されます。
|
List<Element> |
entity 必須 |
この要素を記述するThing(汎用オブジェクト)です。
|
オブジェクト |
type 必須 |
このエンティティのタイプです。詳細については、Enum<EntityTypes>セクションを参照してください。
例: |
Enum<EntityTypes> |
name 省略可能 |
このエンティティの名前です。value とvariants の2つのプロパティが含まれます。
|
オブジェクト |
value 省略可能 |
このエンティティの推奨名です。
例: |
文字列 |
variants 省略可能 |
このエンティティを参照するために使用される追加の名前です。
例: |
文字列 |
externalIds 省略可能 |
このエンドポイントの範囲内で一意である、このエンティティの識別子です。entity.externalIds フィールドはAlexaからは認識できず、Alexaからのディレクティブに含める場合にのみ使用されます。entity.externalIds で報告される識別子は、エンティティ構造を受け入れるすべてのディレクティブコマンドのエンドポイントで理解される必要があります。
例: |
Map<String, String> |
elementId 必須 |
報告されたシーンの範囲内で一意である、このUI要素の識別子です。elementId フィールドはAlexaからは認識できず、Alexaからこのエンドポイントへのディレクティブに含める場合にのみ使用されます。エンドポイントは、ディレクティブコマンドのレスポンスとしてレンダリングされたUIでこの要素を特定するために必要な情報を含めるために、このフィールドを使用します。
例: |
文字列 |
ordinal 省略可能 |
音声による選択で使用できる要素の番号です。たとえば、この値が1の場合、「アレクサ、1番を選択して」と話しかけるとこの要素が選択されます。
例: |
整数 |
uiSupportedActions 必須 |
ユーザーがUIController インターフェースを介してこのUI要素で実行できるアクションを列挙したリストです。詳細については、Enum<uiSupportedActions>を参照してください。
例: |
列挙型 |
elements 省略可能 |
入れ子になったUI要素のリスト(省略可能)です。この要素はuiElements に固有です。
|
List<ElementWithChildren> |
timeOfSample 省略可能 |
プロパティ値が記録された時刻です。
例: |
ISO 8601形式の時刻 |
uncertaintyInMilliseconds 省略可能 |
プロパティ値が前回確認された時点からの経過時間(ミリ秒)です。
例: |
整数 |
Enum<EntityTypes>
entity
のtype
列挙型では、以下のオプションを使用できます。
-
AMAZON.VideoObject
: UIでレンダリングされたビデオアイテムを表すエンティティタイプです。このエンティティは、さまざまな種類のビデオ(映画、TV番組、予告編など)を抽象化したものです。画面の例: -
AMAZON.ItemList
: アイテムのリストを表すエンティティタイプです。このエンティティを使用して、同じタイプまたは異なるタイプのエンティティのコレクションを表します。画面の例: -
AMAZON.SoftwareApplication
: ソフトウェアアプリを表すエンティティタイプです。画面の例: -
AMAZON.Thing
: 特定のタイプがAPIインテグレーターにとって不明であるか、UIController
APIの仕様で定義されていない汎用エンティティを表すエンティティタイプです(MediaDetailsNavigator
では、このエンティティタイプに関する詳細を表示できません)。 画面の例:
Enum<uiSupportedActions>
uiSupportedActions
列挙型では、以下のオプションを使用できます。
名前 | 説明 | 想定されるディレクティブの処理 |
---|---|---|
SELECT |
UI要素を選択するアクション | アプリは、提供された要素を1回クリックするのと同じ処理を行う必要があります。 |
EXPAND |
UI要素で「展開する」または「詳細を表示する」アクション | アプリは、提供された要素の非表示のコンテンツ、隠れているコンテンツ、切り詰められたコンテンツ、その他の展開可能なコンテンツを展開する必要があります。 |
SCROLL_RIGHT |
スクロール可能な要素で右方向にスクロールするアクション | アプリは、指定された要素で右方向へのスクロールアクションを実行する必要があります。このとき、アニメーションによって、または画面上の一部の要素を維持することによってスクロールの意味が明確になるようにします。 |
SCROLL_LEFT |
スクロール可能な要素で左方向にスクロールするアクション | アプリは、指定された要素で左方向へのスクロールアクションを実行する必要があります。このとき、アニメーションによって、または画面上の一部の要素を維持することによってスクロールの意味が明確になるようにします。 |
SCROLL_UP |
スクロール可能な要素で上方向にスクロールするアクション | アプリは、指定された要素で上方向へのスクロールアクションを実行する必要があります。このとき、アニメーションによって、または画面上の一部の要素を維持することによってスクロールの意味が明確になるようにします。 |
SCROLL_DOWN |
スクロール可能な要素で下方向にスクロールするアクション | アプリは、指定された要素で下方向へのスクロールアクションを実行する必要があります。このとき、アニメーションによって、または画面上の一部の要素を維持することによってスクロールの意味が明確になるようにします。 |
SCROLL_FORWARD |
スクロール可能な要素で順方向に移動するアクション | アプリは、指定された要素で順方向へのスクロールアクションを実行する必要があります。このとき、アニメーションによって、または画面上の一部の要素を維持することによってスクロールの意味が明確になるようにします。 |
SCROLL_BACKWARD |
スクロール可能な要素で逆方向に移動するアクション | アプリは、指定された要素で逆方向へのスクロールアクションを実行する必要があります。このとき、アニメーションによって、または画面上の一部の要素を維持することによってスクロールの意味が明確になるようにします。 |
ActionOnUIElementディレクティブの例
ユーザーが、サポート対象の発話で説明されているようなリクエストを行うと、UIController
インターフェースはActionOnUIElement
という名前のディレクティブをLambdaに送信します。ディレクティブの例を次に示します。UI状態で報告する情報は、このディレクティブで使用されます。たとえば、アプリがAlexaに送信したUI状態では、"sceneId": "sceneId-001"
が報告されていました。
{
"directive": {
"header": {
"namespace": "Alexa.UIController",
"name": "ActionOnUIElement",
"payloadVersion": "3"
},
"endpoint": {
"scope": {
"type": "AMAZON.BearerToken",
"token": "access-token-from-Amazon"
},
"endpointId": "endpoint-001"
},
"payload": {
"action": "SELECT",
"scene": {
"sceneId": "sceneId-001"
},
"element": {
"elementId": "elementId_11",
"entity": {
"type": "AMAZON.VideoObject",
"name": {
"value": "スーパーバッド 童貞ウォーズ"
},
"externalIds": {
"externalIdNamespace": "e99e067f-9112-4642-9853-b6401322964d"
}
},
"ordinal": 1,
"uiSupportedActions": [
"SELECT"
]
}
}
}
}
UI状態レポートとUIControllerディレクティブの例
サンプル画面、送信されるUI状態レポート、ユーザーの発話、AlexaからLambdaに送信されるUIController
ディレクティブを示す例を以下に示します。
名前/序数による選択の例
画面に表示されるコンテンツには、異なる序数(位置順を示す1、2、3などの番号)が振られています。ユーザーはコンテンツを序数またはタイトルで選択します。
ユーザーに表示される画面:
{
"context": {
"properties": [
]
},
"event": {
"header": {
"messageId": "abc-123-def-456",
"namespace": "Alexa",
"name": "ChangeReport",
"payloadVersion": "3"
},
"endpoint": {
"scope": {
"type": "AMAZON.BearerToken",
"token": "access-token-from-Amazon"
},
"endpointId": "endpoint-001"
},
"payload": {
"change": {
"cause": {
"type": "PHYSICAL_INTERACTION"
},
"properties": [
{
"namespace": "Alexa.UIController",
"name": "uiElements",
"value": {
"scene": {
"sceneId": "scene-id-004"
},
"elements": [
{
"entity": {
"type": "AMAZON.ItemList",
"externalIds": {
"entityId": "webpage-001"
}
},
"elementId": "elementId-001",
"uiSupportedActions": [
"SCROLL_DOWN",
"SCROLL_FORWARD"
],
"elements": [
{
"entity": {
"type": "AMAZON.VideoObject",
"name": {
"value": "アイアンマン"
},
"externalIds": {
"entityId": "video-001"
}
},
"ordinal": 1,
"elementId": "elementId-002",
"uiSupportedActions": [
"SELECT"
]
},
{
"entity": {
"type": "AMAZON.VideoObject",
"name": {
"value": "インターステラー"
},
"externalIds": {
"entityId": "video-002"
}
},
"ordinal": 2,
"elementId": "elementId-003",
"uiSupportedActions": [
"SELECT"
]
},
{
"entity": {
"type": "AMAZON.VideoObject",
"name": {
"value": "はじまりへの旅"
},
"externalIds": {
"entityId": "video-003"
}
},
"ordinal": 3,
"elementId": "elementId-004",
"uiSupportedActions": [
"SELECT"
]
},
{
"entity": {
"type": "AMAZON.VideoObject",
"name": {
"value": "リベンジャー 復讐のドレス"
},
"externalIds": {
"entityId": "video-004"
}
},
"ordinal": 4,
"elementId": "elementId-005",
"uiSupportedActions": [
"SELECT"
]
},
{
"entity": {
"type": "AMAZON.VideoObject",
"name": {
"value": "ガーディアンズ・オブ・ギャラクシー"
},
"externalIds": {
"entityId": "video-005"
}
},
"ordinal": 5,
"elementId": "elementId-006",
"uiSupportedActions": [
"SELECT"
]
},
{
"entity": {
"type": "AMAZON.VideoObject",
"name": {
"value": "パッセンジャー"
},
"externalIds": {
"entityId": "video-006"
}
},
"ordinal": 6,
"elementId": "elementId-007",
"uiSupportedActions": [
"SELECT"
]
}
]
}
]
},
"timeOfSample": "2017-02-03T16:20:50.52Z",
"uncertaintyInMilliseconds": 0
}
]
}
}
}
}
ユーザーの発話: 「アレクサ、2番を選択して」/「アレクサ、インターステラーを選択して」
{
"directive": {
"header": {
"name": "ActionOnUIElement",
"namespace": "Alexa.UIController"
},
"endpoint": {
"scope": {
"type": "AMAZON.BearerToken",
"token": "access-token-from-Amazon"
},
"endpointId": "endpoint-001"
},
"payload": {
"scene": {
"sceneId": "scene-id-004"
},
"action": "SELECT",
"element": {
"entity": {
"type": "AMAZON.VideoObject",
"name": {
"value": "インターステラー"
},
"externalIds": {
"entityId": "video-002"
}
},
"elementId": "elementId-003",
"uiSupportedActions": [
"SELECT"
]
}
}
}
}
「これを選択」の例
この例では、詳細を表示するタイトル(「マーベラス・ミセス・メイゼル」)をユーザーが選択します。アプリ画面にコンテンツの詳細が表示されています。次に、ユーザーは「これを選択して」と話しかけます。 ユーザーが指示対象をタイトル(「マーベラス・ミセス・メイゼル」)から短い略語(「これ」)に変更しているため、この発話パターンは「前方照応」と呼ばれます。どちらの場合も、指示対象は同じアイテムです。
ユーザーに表示される画面:
{
"context": {
"properties": [
]
},
"event": {
"header": {
"messageId": "abc-123-def-456",
"namespace": "Alexa",
"name": "ChangeReport",
"payloadVersion": "3"
},
"endpoint": {
"scope": {
"type": "AMAZON.BearerToken",
"token": "access-token-from-Amazon"
},
"endpointId": "endpoint-001"
},
"payload": {
"change": {
"cause": {
"type": "PHYSICAL_INTERACTION"
},
"properties": [
{
"namespace": "Alexa.UIController",
"name": "uiElements",
"value": {
"scene": {
"sceneId": "scene-id-001"
},
"elements": [
{
"entity": {
"type": "AMAZON.VideoObject",
"name": {
"value": "マーベラス・ミセス・メイゼル"
},
"externalIds": {
"entityId": "video-001"
}
},
"elementId": "element-010",
"uiSupportedActions": [
"SELECT"
],
"elements": [
{
"entity": {
"type": "AMAZON.Thing",
"name": {
"value": "プライムで今すぐ観る"
},
"externalIds": {
"entityId": "webPageButton-001"
}
},
"elementId": "element-011",
"uiSupportedActions": [
"SELECT"
]
},
{
"entity": {
"type": "AMAZON.Thing",
"name": {
"value": "シーズンとエピソード"
},
"externalIds": {
"entityId": "webPageButton-002"
}
},
"elementId": "element-012",
"uiSupportedActions": [
"SELECT"
]
},
{
"entity": {
"type": "AMAZON.Thing",
"name": {
"value": "ウォッチリストに追加"
},
"externalIds": {
"entityId": "webPageButton-003"
}
},
"elementId": "element-013",
"uiSupportedActions": [
"SELECT"
]
},
{
"entity": {
"type": "AMAZON.Thing",
"name": {
"value": "その他の視聴方法"
},
"externalIds": {
"entityId": "webPageButton-003"
}
},
"elementId": "element-013",
"uiSupportedActions": [
"SELECT"
]
},
{
"entity": {
"type": "AMAZON.Thing",
"name": {
"value": "この作品をご覧になったお客様は次の作品もご覧になっています"
},
"externalIds": {
"entityId": "webPageButton-004"
}
},
"elementId": "element-014",
"uiSupportedActions": [
"SELECT"
]
},
]
}
]
},
"timeOfSample": "2017-02-03T16:20:50.52Z",
"uncertaintyInMilliseconds": 0
},
{
"namespace": "Alexa.UIController",
"name": "focusedUIElement",
"value": {
"scene": {
"sceneId": "scene-id-001"
},
"element": {
"entity": {
"type": "AMAZON.Thing",
"name": {
"value": "プライムで今すぐ観る"
},
"externalIds": {
"entityId": "webPageButton-003"
}
},
"elementId": "element-013",
"uiSupportedActions": [
"SELECT"
]
}
},
"timeOfSample": "2017-02-03T16:20:50.52Z",
"uncertaintyInMilliseconds": 0
}
]
}
}
}
}
ユーザーの発話: 「アレクサ、これを選択して」
{
"directive": {
"header": {
"namespace": "Alexa.UIController",
"name": "ActionOnUIElement"
},
"endpoint": {
"scope": {
"type": "AMAZON.BearerToken",
"token": "access-token-from-Amazon"
},
"endpointId": "endpoint-001"
},
"payload": {
"scene": {
"sceneId": "scene-id-004"
},
"action": "SELECT",
"element": {
"entity": {
"type": "AMAZON.Thing",
"name": {
"value": "プライムで今すぐ観る"
},
"externalIds": {
"entityId": "webPageButton-003"
}
},
"elementId": "element-013",
"uiSupportedActions": [
"SELECT"
]
}
}
}
}
名前による再生の例
この例では、画面にタイトルのリストが表示され、ユーザーはいずれかのタイトルを名前で選択します。ユーザーはタイトルの再生をリクエストするため、RemoteVideoPlayer: SearchAndPlay
ディレクティブが、UIController
ディレクティブの代わりに送信されます。
ユーザーに表示される画面:
{
"context": {
"properties": [
]
},
"event": {
"header": {
"messageId": "abc-123-def-456",
"namespace": "Alexa",
"name": "ChangeReport",
"payloadVersion": "3"
},
"endpoint": {
"scope": {
"type": "AMAZON.BearerToken",
"token": "access-token-from-Amazon"
},
"endpointId": "endpoint-001"
},
"payload": {
"change": {
"cause": {
"type": "PHYSICAL_INTERACTION"
},
"properties": [
{
"namespace": "Alexa.UIController",
"name": "uiElements",
"value": {
"scene": {
"sceneId": "scene-id-004"
},
"elements": [
{
"entity": {
"type": "AMAZON.ItemList",
"externalIds": {
"entityId": "webpage-001"
}
},
"elementId": "elementId-001",
"uiSupportedActions": [
"SCROLL_DOWN",
"SCROLL_FORWARD"
],
"elements": [
{
"entity": {
"type": "AMAZON.VideoObject",
"name": {
"value": "アイアンマン"
},
"externalIds": {
"entityId": "video-001"
}
},
"ordinal": 1,
"elementId": "elementId-002",
"uiSupportedActions": [
"SELECT"
]
},
{
"entity": {
"type": "AMAZON.VideoObject",
"name": {
"value": "インターステラー"
},
"externalIds": {
"entityId": "video-002"
}
},
"ordinal": 2,
"elementId": "elementId-003",
"uiSupportedActions": [
"SELECT"
]
},
{
"entity": {
"type": "AMAZON.VideoObject",
"name": {
"value": "はじまりへの旅"
},
"externalIds": {
"entityId": "video-003"
}
},
"ordinal": 3,
"elementId": "elementId-004",
"uiSupportedActions": [
"SELECT"
]
},
{
"entity": {
"type": "AMAZON.VideoObject",
"name": {
"value": "リベンジャー 復讐のドレス"
},
"externalIds": {
"entityId": "video-004"
}
},
"ordinal": 4,
"elementId": "elementId-005",
"uiSupportedActions": [
"SELECT"
]
},
{
"entity": {
"type": "AMAZON.VideoObject",
"name": {
"value": "ガーディアンズ・オブ・ギャラクシー"
},
"externalIds": {
"entityId": "video-005"
}
},
"ordinal": 5,
"elementId": "elementId-006",
"uiSupportedActions": [
"SELECT"
]
},
{
"entity": {
"type": "AMAZON.VideoObject",
"name": {
"value": "パッセンジャー"
},
"externalIds": {
"entityId": "video-006"
}
},
"ordinal": 6,
"elementId": "elementId-007",
"uiSupportedActions": [
"SELECT"
]
}
]
}
]
},
"timeOfSample": "2017-02-03T16:20:50.52Z",
"uncertaintyInMilliseconds": 0
}
]
}
}
}
}
ユーザーの発話: 「アレクサ、インターステラーを再生して」
{
"directive": {
"header": {
"name": "SearchAndPlay",
"namespace": "Alexa.RemoteVideoPlayer"
},
"endpoint": {
"scope": {
"type": "AMAZON.BearerToken",
"token": "access-token-from-Amazon"
},
"endpointId": "endpoint-001"
},
"payload": {
"entities": [
{
"externalIds": {
"entityId": "video-002"
},
"value": "インターステラー",
"type": "Video"
}
]
}
}
}
「これを再生」の例
この例では、ユーザーが「マーベラス・ミセス・メイゼル」というタイトルの詳細を表示するようリクエストしたため、アプリはコンテンツの詳細ページを表示しました。ここで、ユーザーが「これを再生して」と話しかけます。 この例も、前に説明した「これを選択」の場合と同様に前方照応です。ただしこの例では、送信されるディレクティブはRemoteVideoPlayer: SearchAndPlay
ディレクティブであり、UIController
ディレクティブではありません。
ユーザーに表示される画面:
{
"context": {
"properties": [
]
},
"event": {
"header": {
"messageId": "abc-123-def-456",
"namespace": "Alexa",
"name": "ChangeReport",
"payloadVersion": "3"
},
"endpoint": {
"scope": {
"type": "AMAZON.BearerToken",
"token": "access-token-from-Amazon"
},
"endpointId": "endpoint-001"
},
"payload": {
"change": {
"cause": {
"type": "PHYSICAL_INTERACTION"
},
"properties": [
{
"namespace": "Alexa.UIController",
"name": "uiElements",
"value": {
"scene": {
"sceneId": "scene-id-001"
},
"elements": [
{
"entity": {
"type": "AMAZON.VideoObject",
"name": {
"value": "マーベラス・ミセス・メイゼル"
},
"externalIds": {
"entityId": "video-001"
}
},
"elementId": "element-010",
"uiSupportedActions": [
"SELECT"
],
"elements": [
{
"entity": {
"type": "AMAZON.Thing",
"name": {
"value": "プライムで今すぐ観る"
},
"externalIds": {
"entityId": "webPageButton-001"
}
},
"elementId": "element-011",
"uiSupportedActions": [
"SELECT"
]
},
{
"entity": {
"type": "AMAZON.Thing",
"name": {
"value": "シーズンとエピソード"
},
"externalIds": {
"entityId": "webPageButton-002"
}
},
"elementId": "element-012",
"uiSupportedActions": [
"SELECT"
]
},
{
"entity": {
"type": "AMAZON.Thing",
"name": {
"value": "ウォッチリストに追加"
},
"externalIds": {
"entityId": "webPageButton-003"
}
},
"elementId": "element-013",
"uiSupportedActions": [
"SELECT"
]
},
{
"entity": {
"type": "AMAZON.Thing",
"name": {
"value": "その他の視聴方法"
},
"externalIds": {
"entityId": "webPageButton-003"
}
},
"elementId": "element-013",
"uiSupportedActions": [
"SELECT"
]
},
{
"entity": {
"type": "AMAZON.Thing",
"name": {
"value": "この作品をご覧になったお客様は次の作品もご覧になっています"
},
"externalIds": {
"entityId": "webPageButton-004"
}
},
"elementId": "element-014",
"uiSupportedActions": [
"SELECT"
]
},
]
}
]
},
"timeOfSample": "2017-02-03T16:20:50.52Z",
"uncertaintyInMilliseconds": 0
},
{
"namespace": "Alexa.UIController",
"name": "focusedUIElement",
"value": {
"scene": {
"sceneId": "scene-id-001"
},
"element": {
"entity": {
"type": "AMAZON.Thing",
"name": {
"value": "プライムで今すぐ観る"
},
"externalIds": {
"entityId": "webPageButton-003"
}
},
"elementId": "element-013",
"uiSupportedActions": [
"SELECT"
]
}
},
"timeOfSample": "2017-02-03T16:20:50.52Z",
"uncertaintyInMilliseconds": 0
}
]
}
}
}
}
ユーザーの発話: 「アレクサ、これを再生して」
{
"directive": {
"header": {
"name": "SearchAndPlay",
"namespace": "Alexa.RemoteVideoPlayer"
},
"endpoint": {
"scope": {
"type": "AMAZON.BearerToken",
"token": "access-token-from-Amazon"
},
"endpointId": "endpoint-001"
},
"payload": {
"entities": [
{
"externalIds": {
"entityId": "video-001"
},
"value": "マーベラス・ミセス・メイゼル",
"type": "Video"
}
]
}
}
}
画面上の選択の例
一部のアプリは、UIのスクレイピングやアクセシビリティフレームワークによって画面上のコンテンツを読み取ることができます。これらのアプリは、レンダリングされるコンテンツを十分に把握していなくても、画面上のコンテンツテキストを読み取って、シンプルな画面上の選択機能を提供できます。
また、UI状態レポートをAlexaゲートウェイエンドポイントに送信して、画面上の情報をAlexaに報告することもできます。UIController
インターフェースには、汎用エンティティタイプAMAZON.Thing
が含まれています。これをスクリーンリーダーアプリで使用して、より高度なアプリと同様の形式で画面上のテキストデータを報告できます。以下は、シンプルなUI状態レポートとインタラクションです。
ユーザーに表示される画面:
{
"context": {
"properties": []
},
"event": {
"header": {
"messageId": "abc-123-def-456",
"namespace": "Alexa",
"name": "ChangeReport",
"payloadVersion": "3"
},
"endpoint": {
"scope": {
"type": "BearerToken",
"token": "access-token-from-Amazon"
},
"endpointId": "avl-endpoint-id-001"
},
"payload": {
"change": {
"cause": {
"type": "PHYSICAL_INTERACTION"
},
"properties": [
{
"namespace": "Alexa.UIController",
"name": "uiElements",
"value": {
"scene": {
"sceneId": "scene-id-004"
},
"elements": [
{
"entity": {
"type": "AMAZON.Thing"
},
"elementId": "uiNode-000",
"uiSupportedActions": [
"SCROLL_FORWARD",
"SCROLL_DOWN"
],
"elements": [
{
"entity": {
"type": "AMAZON.Thing",
"name": {
"value": "ホーム"
}
},
"elementId": "uiNode-001",
"uiSupportedActions": [
"SELECT"
]
},
{
"entity": {
"type": "AMAZON.Thing",
"name": {
"value": "番組"
}
},
"elementId": "uiNode-002",
"uiSupportedActions": [
"SELECT"
]
},
{
"entity": {
"type": "AMAZON.Thing",
"name": {
"value": "IMDB FREEDIVE:無料の広告付き映画およびTV番組"
}
},
"elementId": "uiNode-010",
"uiSupportedActions": []
},
{
"entity": {
"type": "AMAZON.Thing",
"name": {
"value": "はじまりへの旅"
}
},
"elementId": "uiNode-011",
"uiSupportedActions": [
"SELECT"
]
},
{
"entity": {
"type": "AMAZON.Thing",
"name": {
"value": "フリンジ"
}
},
"elementId": "uiNode-012",
"uiSupportedActions": [
"SELECT"
]
},
{
"entity": {
"type": "AMAZON.Thing",
"name": {
"value": "ドライヴ"
}
},
"elementId": "uiNode-013",
"uiSupportedActions": [
"SELECT"
]
},
{
"entity": {
"type": "AMAZON.Thing",
"name": {
"value": "Forte"
}
},
"elementId": "uiNode-014",
"uiSupportedActions": [
"SELECT"
]
},
{
"entity": {
"type": "AMAZON.Thing",
"name": {
"value": "パディントン"
}
},
"elementId": "uiNode-015",
"uiSupportedActions": [
"SELECT"
]
},
]
}
]
},
"timeOfSample": "2017-02-03T16:20:50.52Z",
"uncertaintyInMilliseconds": 0
}
]
}
}
}
}
ユーザーの発話: 「アレクサ、はじまりへの旅を選択して」
{
"directive": {
"header": {
"namespace": "Alexa.UIController",
"name": "ActionOnUIElement"
},
"endpoint": {
"scope": {
"type": "AMAZON.BearerToken",
"token": "access-token-from-Amazon"
},
"endpointId": "endpoint-001"
},
"payload": {
"scene": {
"sceneId": "scene-id-004"
},
"action": "SELECT",
"element": {
"entity": {
"type": "AMAZON.Thing",
"name": {
"value": "はじまりへの旅"
}
},
"elementId": "uiNode-011",
"uiSupportedActions": [
"SELECT"
]
}
}
}
}
サンプルアプリの統合
UIController
の統合サンプルは、クラウド側のサンプルアプリで確認できます。サンプルアプリには、UIController
のDiscover
ディレクティブを使用してサポートを宣言する方法と、UIController
から送信されるActionOnUIElement
ディレクティブを処理する方法を示すLambdaコードが含まれています。
以下のセクションでは、サンプルアプリのUIコントローラーAPIのユースケースを詳しく説明します。サンプルアプリをテストするために、以下のクラスやメソッドを実装する必要はありません。以下のコードスニペットは、必要なメソッドの実装場所と使用方法を示しています。実際のアプリコードでは、独自のロジックを使用する必要があります。
サンプルアプリでテストするには、任意の画面のUIコンテンツを変更し、Alexaで新しいUIコンテンツを音声ターゲットとしてテストします。
MainFragmentクラス
MainFragment
クラスは、サンプルアプリのホーム画面に関連付けられています。サンプルアプリでは、このページの内容と現在フォーカスがある要素が報告されます。
public class MainFragment extends BrowseFragment implements MainActivity.UIElementAction, MainActivity.MediaDetailsAction {
public static final String HOME_BROWSER_SCENE_IDENTIFIER = "home-browser-scene-000";
private static final String TAG = "MainFragment";
private static final int BACKGROUND_UPDATE_DELAY = 300;
private static final int NUM_ROWS = 2;
private static final int NUM_COLS = 4;
private final Handler mHandler = new Handler();
private Drawable mDefaultBackground;
private DisplayMetrics mMetrics;
private Timer mBackgroundTimer;
private String mBackgroundUri;
private BackgroundManager mBackgroundManager;
フォーカスがある要素とAlexaに報告された現在のUI状態を確認するには、ターミナルでadb(Android Debug Bridge)コマンドを実行します。
adb logcat | grep MainFragment -i
サンプルアプリでは、ユーザーがこの画面で選択を行うたびに、この画面のUIの状態がAlexaに報告されます。
private void reportCurrentUIState(final Object selectedItem) {
final ArrayObjectAdapter rowsAdapter = (ArrayObjectAdapter) getAdapter();
final List<ElementWithChildren> elements = getUIElements(rowsAdapter);
final Movie currentMovieSelected = (Movie) selectedItem;
final Element focusedElement = getUIElement(currentMovieSelected);
Log.d(TAG, MessageFormat.format("フォーカスがある映画の要素IDは{0}です", focusedElement.getElementId()));
final Scene scene = new Scene.Builder().withSceneId(HOME_BROWSER_SCENE_IDENTIFIER).build();
final UIElements uiElements = new UIElements.Builder().withScene(scene).withElements(elements).build();
final FocusedUIElement focusedUIElement = new FocusedUIElement.Builder().withScene(scene).withElement(focusedElement).build();
final Map<String, String> currentUIStateJSON = getUIStateJSON(uiElements, focusedUIElement);
Log.d(TAG, MessageFormat.format("ホーム画面のUI状態をAlexaに報告しています: {0}", currentUIStateJSON));
AlexaClientManager.getSharedInstance().setUIState(currentUIStateJSON);
Log.i(TAG, "ホーム画面のUI状態をAlexaに報告しました。");
}
VideoDetailsFragment
サンプルアプリでは、VideoDetailsFragment
クラスが特定のMovie
オブジェクトに関連付けられています。このクラスは、予告編、購入オプション、映画の説明など、Movie
の詳細をすべて提供します。
public class VideoDetailsFragment extends DetailsFragment implements DetailsActivity.UIElementAction, DetailsActivity.MediaDetailsAction {
public static final String VIDEO_DETAIL_SCENE_IDENTIFIER = "video-detail-scene-001";
private static final String TAG = "VideoDetailsFragment";
private static final int ACTION_WATCH_TRAILER = 1;
private static final int ACTION_RENT = 2;
private static final int ACTION_BUY = 3;
private static final int DETAIL_THUMB_WIDTH = 274;
private static final int DETAIL_THUMB_HEIGHT = 274;
private static final int NUM_COLS = 4;
private Movie mSelectedMovie;
private ArrayObjectAdapter mAdapter;
private ClassPresenterSelector mPresenterSelector;
private DetailsFragmentBackgroundController mDetailsBackground;
フォーカスがある要素とAlexaに報告された現在のUI状態を確認するには、ターミナルでadb(Android Debug Bridge)コマンドを実行します。
adb logcat | grep VideoDetailsFragment -i
サンプルアプリでは、ユーザーがこの画面で選択を行うたびに、この画面のUIの状態がAlexaに報告されます。
private void reportCurrentUIState(final Object selectedItem) {
final ArrayObjectAdapter rowsAdapter = (ArrayObjectAdapter) getAdapter();
final List<ElementWithChildren> elements = getUIElements(rowsAdapter);
final Movie currentMovieSelected = (Movie) selectedItem;
final Element focusedElement = getUIElement(currentMovieSelected);
Log.d(TAG, MessageFormat.format("フォーカスがある映画の要素IDは{0}です", focusedElement.getElementId()));
final Scene scene = new Scene.Builder().withSceneId(HOME_BROWSER_SCENE_IDENTIFIER).build();
final UIElements uiElements = new UIElements.Builder().withScene(scene).withElements(elements).build();
final FocusedUIElement focusedUIElement = new FocusedUIElement.Builder().withScene(scene).withElement(focusedElement).build();
final Map<String, String> currentUIStateJSON = getUIStateJSON(uiElements, focusedUIElement);
Log.d(TAG, MessageFormat.format("ホーム画面のUI状態をAlexaに報告しています: {0}", currentUIStateJSON));
AlexaClientManager.getSharedInstance().setUIState(currentUIStateJSON);
Log.i(TAG, "ホーム画面のUI状態をAlexaに報告しました。");
}
UI状態レポート
サンプルアプリでは、いくつかのクラスを使用して、UI状態イベントペイロードを生成します。
Element
ElementWithChildren
Entity
EntityType
EntityName
Scene
UIAction
FocusedUIElement
UIElement
これらのクラスとその中のメソッドを使用して、独自のロジックでUI状態ペイロードを生成できます。たとえば、Element
クラスは、画面上の各UI要素を定義します。サンプルアプリでは、この動作を以下のコードスニペットで定義しています。
package com.amazon.alexauicontroller;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
/**
* UIでレンダリングされるUI要素を表します。
*/
public class Element {
/**
* シーン内のこの要素の一意のIDです。
*/
private String elementId;
/**
* このElementを記述するThingです。
*/
private Entity entity;
/**
* 音声による選択で使用できる要素の番号です。
*/
private Integer ordinal;
/**
* ユーザーがこの要素で実行できるUIアクションのリストです。
*/
private List<UIAction> uiSupportedActions;
protected Element() {}
protected Element(final String elementId, final Entity entity, final Integer ordinal,
final List<UIAction> uiSupportedActions) {
this.elementId = elementId;
this.entity = entity;
this.ordinal = ordinal;
this.uiSupportedActions = uiSupportedActions;
}
/**
* @return:この要素のIDです。
*/
public String getElementId() {
return elementId;
}
/**
* @return:この要素を表す{@link Entity}です。
*/
public Entity getEntity() {
return entity;
}
/**
* @return:この要素の番号です。
*/
public Integer getOrdinal() {
return ordinal;
}
/**
* @return:ユーザーがこの要素で実行できる{@link UIAction}のリストです。
*/
public List<UIAction> getUiSupportedActions() {
return uiSupportedActions;
}
/**
* 要素の識別子を設定します。
* @param:要素のIDに設定されるelementIdです。
*/
public void setElementId(final String elementId) {
this.elementId = elementId;
}
/**
* 要素のエンティティを設定します。
* @param:{@link Entity}に設定されるentityです。
*/
public void setEntity(final Entity entity) {
this.entity = entity;
}
/**
* 要素番号を設定します。
* @param:要素の番号に設定されるordinalです。
*/
public void setOrdinal(final Integer ordinal) {
this.ordinal = ordinal;
}
/**
* 要素のUIアクションを設定します。UIアクションリストが既に存在する場合、この操作によって既存のUIアクションリストが置き換えられます。
* @param:{@link UIAction}のリストに設定されるuiSupportedActionsです。
*/
public void setUiSupportedActions(final List<UIAction> uiSupportedActions) {
this.uiSupportedActions = uiSupportedActions;
}
UIElementUtilクラス
UIElementUtil
クラスは、UI状態イベントペイロードの生成に必要なすべてのUI要素を構築するユーティリティクラスです。
public class UIElementUtil {
private static final String TAG = "UIElementUtil";
public static final String EXTERNAL_ID_KEY = "entityId";
public static final String EXTERNAL_ID_VALUE_PREFIX_FOR_ACTION = "webPageButton-";
public static final String EXTERNAL_ID_VALUE_PREFIX_FOR_MOVIE = "video-";
public static final String EXTERNAL_ID_VALUE_PREFIX_FOR_LIST_ROW = "videos-row-";
public static final String ELEMENT_ID_PREFIX = "element-";
public static final String ELEMENT_ID_PREFIX_FOR_ACTION = "action-";
public static final String ELEMENT_ID_PREFIX_FOR_MOVIE = "movie-";
public static final String ELEMENT_ID_PREFIX_FOR_VIDEO_DETAIL = "details-";
public static final String ELEMENT_ID_PREFIX_FOR_LIST_ROW = "list-row-";
public static final String UI_ELEMENTS_EVENT_KEY = "uiElements";
public static final String FOCUSED_UI_ELEMENT_EVENT_KEY = "focusedUIElement";
onMessageメソッド
サンプルアプリは、Lambda経由でAlexaからディレクティブを受信します。このディレクティブは、onMessage
メソッドではActionOnUIElement
と呼ばれます。
protected void onMessage(final Intent intent) {
Log.d(TAG, MessageFormat.format("ADMからメッセージを受信しました: {0}", intent.toString()));
//...
else if ("ActionOnUIElement".equals(directiveName)) {
if (jsonTree.isJsonObject()) {
final JsonObject jsonObject = jsonTree.getAsJsonObject();
final JsonObject jDirective = jsonObject.get("directive").getAsJsonObject();
final JsonElement jPayload = jDirective.get("payload");
if (jPayload != null && jPayload.isJsonObject()) {
final String jPayloadString = jPayload.getAsJsonObject().toString();
final ActionOnUIElement actionOnUIElement = gson.fromJson(jPayloadString, ActionOnUIElement.class);
Log.d(TAG, MessageFormat.format("ActionOnUIElementディレクティブは{0}です", actionOnUIElement));
final boolean isActionOnUIElementValid = validateActionOnUIElementDirective(actionOnUIElement);
if (!isActionOnUIElementValid) {
Log.d(TAG, "受信したActionOnUIElementディレクティブが無効です。処理できません。");
return;
}
final Intent actionOnUIElementIntent = new Intent();
actionOnUIElementIntent.setAction(ACTION_ON_UI_ELEMENT);
final String packageName = FireTVApp.getInstance().getPackageName();
actionOnUIElementIntent.setFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP | Intent.FLAG_ACTIVITY_NEW_TASK);
actionOnUIElementIntent.putExtra(EXTRA_UI_CONTROLLER_ELEMENT_ID, actionOnUIElement.getElement().getElementId());
actionOnUIElementIntent.putExtra(EXTRA_UI_CONTROLLER_ELEMENT_TYPE, actionOnUIElement.getElement().getEntity().getType());
actionOnUIElementIntent.putExtra(EXTRA_UI_CONTROLLER_ACTION, actionOnUIElement.getAction());
final Scene scene = actionOnUIElement.getScene();
if (scene.getSceneId().equals(HOME_BROWSER_SCENE_IDENTIFIER)) {
Log.d(TAG, MessageFormat.format("actionOnUIElementインテントの対象をホーム画面に設定しています: {0}",
MainActivity.class.getName()));
actionOnUIElementIntent.setClassName(packageName, MainActivity.class.getName());
} else if (scene.getSceneId().equals(VIDEO_DETAIL_SCENE_IDENTIFIER)) {
Log.d(TAG, MessageFormat.format("actionOnUIElementインテントの対象を詳細画面に設定しています: {0}",
DetailsActivity.class.getName()));
actionOnUIElementIntent.setClassName(packageName, DetailsActivity.class.getName());
} else {
Log.e(TAG, MessageFormat.format("不明なシーンID{0}です。ActionOnUIElementディレクティブを処理できません", scene.getSceneId()));
return;
}
Log.d(TAG, MessageFormat.format("actionOnUIElementインテントを送信しています: {0}", actionOnUIElementIntent));
FireTVApp.getInstance().startActivity(actionOnUIElementIntent);
Log.d(TAG, "UIControllerディレクティブの処理が完了しました");
}
} else {
// 無効なメッセージJSONです。
Log.e(TAG, "無効なメッセージJSONです");
}
//...
MediaDetailsNavigator
UIController
を実装している場合は、MediaDetailsNavigator
の実装も検討してください。このインターフェースは既に送信しているものと同じUI状態レポートに基づいており、「ビデオタイトルについての詳細を表示して」などの発話もサポートされています。