アプリ内の音声ナビゲーションと選択


アプリ内の音声ナビゲーションと選択

Fire TV Cube(日本未対応)では、多くの人気アプリにおいて音声を活用したナビゲーションと選択を実行することができます。アプリ内の音声ナビゲーションと選択に関する機能は、D-Padナビゲーションイベントを音声コマンドにマッピングすることで動作します。D-Padとは、上下左右にスクロールする際に使用する、リモコンの方向キーパッド([選択] ボタンの周囲にある「ナビゲーション」リング)のことです。音声コマンドは、Alexaによってアプリに送信されるD-Padナビゲーションイベントに変換されます。

音声によるナビゲーションと選択

Fire TVには、フォーカスが置かれたウィジェットのUIをナビゲーション選択できるアプリ内音声機能が備わっています。

ナビゲーション

ナビゲーションする場合は、「スクロール」や「ページ」を方向(上下左右)と組み合わせて発話することで、アプリ内のナビゲーション可能なコンテンツ間でフォーカスを移動できます。たとえば、「アレクサ、左にスクロールして」や「アレクサ、下に移動して」と言えば、 Fire TVの画面上でフォーカスを希望の方向に移動させることが可能です。Fire TVでは、リモコンのRIGHT・LEFT・UP・DOWN(DPAD_RIGHT/LEFT/UP/DOWN)イベントを複数回シミュレーションすることで、ナビゲーション操作を実行します。

フォーカスが水平または垂直に移動する際に動く要素の数は、アプリレベルで設定され、各アプリ固有のレイアウトに基づきます。デフォルトでは、水平方向の移動に3要素、垂直方向の移動に2要素が設定されています。ただし、アプリのエクスペリエンスを最適化するために、Amazon側でデフォルト値を手動調整することも可能です。たとえば、最適なエクスペリエンスのために移動させる必要がある要素数が3ではなく、4である場合、Amazon側で自動的にその設定を選択します。移動が必要な要素数を調整する場合は、お問い合わせフォームから変更のリクエストを行ってください。

Fire TVは、スクロールに加えて、シンプルなワンステップナビゲーションにも対応しています。ワンステップナビゲーションでは、キーワード「移動」を方向(上下左右)と組み合わせた呼びかけに応じて、フォーカスを一度に1要素ずつ移動させます。(例:「アレクサ、右に移動して」や「アレクサ、上に移動して」など)。 Fire TVは、従来と同じD-Padイベントを使用してワンステップナビゲーションを実行しますが、リモコンのRIGHT・LEFT・UP・DOWN(DPAD_RIGHT/LEFT/UP/DOWN)イベントを複数回​ではなく、1回だけシミュレーションすることで、フォーカスを1要素ずつ移動させます。

選択

フォーカスが置かれたアイテムを選択したり、ハイライトされたタイトルを再生したりするには、「アレクサ、選択して」または「アレクサ、これ/あれ/それを選択して」と発話します。 この呼びかけは、現在フォーカスが置かれている要素をクリックまたは選択するのと同じ動作を実行します。また、Fire TVは、リモコンの選択(DPAD_CENTER)キー押下イベントをシミュレーションします。

アプリ内の音声コマンドに関するよくある問題

アプリ内の音声ナビゲーションと選択に関する機能をアプリに実装するには、フォーカスのリセットや画面の更新を行わずにオーバーレイを処理する必要があります。デフォルトでこの処理を実行できるアプリがほとんどですが、処理ができない場合は次のような原因が考えられます。

問題1: フォーカスが置かれた要素がリセットされる

(Alexaの操作のように異なるプロセスに関連する)オーバーレイやダイアログがアプリ画面の最上部に表示されてから消える仕様の場合、フォーカスが置かれた要素が変わったり、リセットされたりしないようにします。

たとえば、アプリが最前面にあり、フォーカスが3番目の列の要素に置かれているときに、ユーザーが「アレクサ、今何時?」と発話してAlexaを起動したとします。 この場合、Alexaが応答を終了しても、フォーカスは引き続き同じ要素に置かれていなければなりません。

Alexaの応答後にフォーカスが別の要素に移動する仕様の場合、音声によるナビゲーションや選択を正常に行えず、ユーザーエクスペリエンスが低下してしまいます。たとえば、ユーザーが「アレクサ、これを選択して」と発話しても、ユーザーの意図に反して新たにフォーカスが置かれたアイテムが(誤って)選択されてしまいます。

問題2: 画面の更新でナビゲーションに不整合が生じる

フォーカスのリセット問題と同様に、Alexaの応答後に行われる画面の更新やリロードによって、問題が生じてしまうアプリもあります。音声コマンドに応答する際に画面が更新したり、リロードが発生したりすると、Fire TVはAlexa起動時におけるフォーカスの情報を保持できません。これもユーザーエクスペリエンスの低下につながります。

たとえば、ユーザーが「アレクサ、右にスクロールして」と発話すると、Fire TVはスクロールをシミュレーションするためのキー押下イベントを該当アプリに送信します。その際にアプリ画面の一部または全部が読み込まれると、キー押下イベントは意図した要素に設定されず、スクロールや選択が正常に行えなくなります。

問題3: D-Padナビゲーションを制限するアプリの更新

アプリの更新がナビゲーションや選択の動作に直接的な影響を及ぼさないとしても、D-Padコントロールを使用したナビゲーション機能に制限が加えられる場合は、アプリ内の音声ナビゲーションと選択に関する機能にも制限が生じます。

たとえば、リモコンの [メニュー] ボタンに過度に依存すると、アプリ内における音声操作が限定的になりかねません。サイドバーメニューの表示、テレビドラマのエピソード表示、詳細情報の表示といった、アプリの重要機能を実行する方法が [メニュー] ボタンだけの場合(D-Padの方向キーでは実行できない場合)、音声ナビゲーションと選択の機能は用途の幅が狭まり、重要度も下がってしまいます。

また、D-Padナビゲーションキーをほかの機能(DPAD_UPが押された際にメニューオプションを表示するなど)にマッピングすると、アプリのナビゲーションに利用できるD-Pad機能が制限され、アプリ内の音声ナビゲーションと選択に関する機能にもマイナスの影響が生じます。

アプリを更新するたびに、音声によるナビゲーション・選択機能との互換性をテストして、音声によるナビゲーションと選択を実行できるようにしてください。

アクティビティライフサイクルの処理

アクティビティライフサイクルの処理におけるベストプラクティスを取り入れることで、アプリ内の音声コマンドに関するよくある問題は回避できます。ユーザーがアプリ内を移動すると、アプリのアクティビティインスタンスがライフサイクルのさまざまな状態に遷移します。ライフサイクルコールバックメソッド内では、ユーザーの操作に基づいてアクティビティがどのように動作すべきかを定義することも可能です。詳細については、Androidのアクティビティライフサイクルに関するドキュメントを参照してください。

アクティビティUI処理の主なライフサイクルイベントは以下のとおりです。アプリにとっての適切な処理とフローについても説明します。

  • onPause()コールバックは、アクティビティが部分的にほかのアクティビティによって見えない状態になった際に呼び出されます(例:[ホーム] ボタンを長押ししてヘッドアップ通知がFire TVに表示される、またはFire TVでAlexaを起動する場合など)。厳密に言うと、onPause()の後でもアクティビティは部分的に見えていますが、このような場合、ユーザーがアクティビティを離れるケースがほとんどで、アクティビティはすぐに停止または再開の状態に移行します。

  • アクティビティがonPause()を受け取った後、通常はonStop()への呼び出しが続きます(次のアクティビティが再開・表示された後)。ただし、場合によっては停止状態を経ることなく、onResume()への直接コールバックが行われることもあります。

  • onResume()は、アクティビティとユーザーの対話が始まる直前に呼び出されます。この時点では、アクティビティはアクティビティスタックの一番上にあり、すべてのユーザー入力をキャプチャします。onResume()は変更を加えずに元のUIの状態を復元し、onPause()onResume()の間で変更がある場合にのみ、UIを更新する必要があります。onPause()の後にonResume()を受け取る場合、onResume()の間はフォーカスが置かれた要素の変更や画面の更新はなるべく避けてください。

  • Fire TVは、アクティビティがユーザーに表示されなくなるとonStop()を呼び出します。アクティビティの破棄や新しいアクティビティの開始時にも、同様のことが起こり得ます。既存のアクティビティが再開の状態となり、停止したアクティビティをカバーする場合にも、同じことが言えます。これらすべてのケースで、停止したアクティビティはユーザーに表示されなくなります。また、onStop()が呼び出されている間は、アクティビティがすべてのリソースを解放するようにしてください。onStop()メソッドでは、アプリがユーザー側で表示されない間、必要のないリソースを解放または調整する必要があります。

  • 次のコールバックFire TV呼び出しは、onRestart()onDestroy()のいずれかになります。前者は、アクティビティがユーザーとの対話のために戻ってくる場合で、後者はアクティビティが完全に破棄される場合です。アクティビティがonStop()を完了して再起動した場合にのみ、onResume()の間にUIの更新やフォーカスが置かれた要素のリセットを行ってください。

ロールアウトと対応アプリ

アプリ内の音声ナビゲーションと選択に関する機能は、まず特定のアプリに向けて段階的にロールアウトされ、最終的にすべてのアプリで利用可能になる予定です。Amazonによるアプリの互換性に関する検証完了後、互換性テストの結果と今後のアクションアイテムの詳細を通知するEメールが送られます。

音声によるナビゲーション・選択機能のテスト

アプリ内の音声ナビゲーションと選択に関する機能のテストは、以下の手順で行ってください。

音声によるナビゲーション・選択機能の有効化に必要なテストの手順

  1. まず、テストに使用するAmazonカスタマーIDに関して、Amazonからご連絡いたします。テスト用にアカウントが有効化された後、Amazonより通知が届きます。
  2. 次に、Amazonアプリストアから現行バージョンのアプリをダウンロードして、テストを実行します(注意: 上記の手順1で、Amazonに提供したテスト用Amazonアカウントを使用してログインしてください)。
  3. テストに不合格だった場合は、問題点を修正後にアプリの更新バージョンを申請することができます。更新バージョンを検証する際は、以下の手順に従ってください。

アプリの更新時に行うべき、音声によるナビゲーション・選択機能のテスト手順

  1. アプリの更新バージョンは、ライブアプリテストを利用してテストを行えます。
  2. ライブアプリテスト用にアプリをアップロードしたら、テスト用に指定したアカウントでそのアプリをダウンロードし、テストを実行します。
  3. テスト完了後は、通常通り公開に向けてアプリを申請することができます。

アプリの更新バージョンは、Amazonアプリストアで公開される前に再度審査に合格しなければなりません。このとき、審査対象のアプリに音声によるナビゲーション・選択機能との互換性がない場合は、問題を修正するためにAmazonからご連絡いたします。

ユーザーエクスペリエンスを保護するため、以前のバージョンで音声によるナビゲーション・選択機能に対応していたとしても、新バージョンで非対応の場合は却下されてしまいます。

ただし、新旧バージョンで音声によるナビゲーション・選択機能が非対応の場合、新バージョンは公開可能と判断されます。後から同機能に対応させたい場合は、Amazonがサポートいたします。

音声によるナビゲーション・選択機能の停止

アプリ内の音声ナビゲーションと選択に関する機能を停止する場合は、お問い合わせフォームからアプリの詳細をお知らせください。

よくある質問(FAQ)

音声を利用してどのような操作を実行できますか?
Amazonアプリストアでは、開発者側に負担をかけることなく、より多くのアプリに基本的な音声機能を提供できるよう目指しています。その一環として現在サポートしているのが、サードパーティアプリでフォーカスが置かれた要素を音声によってナビゲーションしたり、選択したりできる機能です。たとえば、「アレクサ、右にスクロールして」や「アレクサ、下に移動して」と言うことでコンテンツ内を移動したり、「アレクサ、選択して」や「アレクサ、これを選択して」と言うことでフォーカスが置かれた要素を選択したりできます。この機能では、次のような発話がサポートされています。
  • ナビゲーション: [方向] にスクロールして、[方向] のページに進んで、[方向] に移動して、[方向] に進んで。[方向] には、上下左右のいずれかを使います。
  • 選択: 選択して、これ/あれ/それを選択して
この機能はすべてのアプリで使用できますか?
Amazonでは、この機能をすべてのアプリで使用できるように取り組んでいますが、カスタマーエクスペリエンス保護の観点から、状況に応じて同機能を使用できるアプリをホワイトリストに登録することもあります。上記のガイドラインに記載された基準を遵守していれば、この機能は自動的に使用できるようになります。
この機能がアプリ自体に何らかの影響を与えることはありますか?
いいえ。アプリの機能やパフォーマンスに対して、悪影響が及ぶことはありません。
この機能の使用方法を教えてください。
お問い合わせフォームからアプリの詳細を添えてご連絡ください。上記のガイドラインが遵守されていれば、7営業日以内にこの機能を有効にします。また、カスタマーエクスペリエンス保護の観点から、音声によるナビゲーション・選択機能を有効にすべきかを判断するために厳重なテストが実施されます。
より高度な音声機能の使用方法を教えてください。
高度な音声機能が必要な場合は、より幅広く多彩な機能が利用できるビデオスキルAPIを実装してください。
この機能が利用できるデバイスを教えてください。
この機能は、現在Fire TV Cube(日本未対応)にのみ対応しています。
この機能はどのアプリカテゴリーで利用可能ですか?
ゲームを除くすべてのカテゴリーにおいて、この機能を提供できるように取り組んでいます。まずはメディアアプリから始め、ほかのカテゴリーでも順次利用できるようにしていきます。
この機能に関するフィードバックは、どこに送ればよいですか?
フィードバックはお問い合わせフォームからお送りいただけます。