開発者コンソール

アプリのみの統合の概要


アプリのみの統合の概要

VSKの統合にアプリのみの実装方法を使用する場合、AlexaビデオスキルAPIによりFire TVデバイス上のアプリに直接ディレクティブが送信されます。Fire TVには「VSK Agent」と呼ばれるサービスがあり、このサービスがAlexaディレクティブを受信して、インテントとしてブロードキャストします。アプリでは、BroadcastReceiverでそのインテントを処理します。VSKの統合はすべて、Androidコード内で完結します。

コンポーネント

アプリのみの統合に関連するコンポーネントには、以下のものがあります。

  • VSK Agent - Fire TVのFire OSに組み込まれたサービスであり、Alexaディレクティブを受け取って、Fire TV上のアプリにインテントとしてブロードキャストします(Fire OSのすべてのバージョンがサポートされています)。
  • Fire TV:アプリが実行されるデバイスです。音声リクエストを使用するには、Fire TVのリモコンにマイクボタンが必要です。推奨のFire TVデバイスはFire TV Stick 4Kですが、ほぼすべてのFire TVデバイスを使用できます。

  • VSK Agent Client Library - ユーザーのログイン状態によってアプリの音声機能を変更する場合(「動的機能の統合」と呼ばれます)に使用されるAARライブラリです。VSK Agent Client Libraryは、Fire OS上のVSK Agentに接続できるようにAndroidインターフェース定義言語(AIDL)を実装しています。
  • VSKApplicationAgentAPI - VSK Agent Client Libraryを統合せず、VSK Agent Client Libraryに含まれているコードを自分で記述してVSK Agentとやり取りする場合に、オプションとして使用できます。VSKApplicationAgentAPIには、Fire TV上のVSK Agentとやり取りするために必要な.aidlファイルおよびJavaクラスが含まれています。
  • クラウドのAlexa - ユーザーのリクエスト(発話)を受け取り、自然言語処理を実行してリクエストの解析とインテントの確認を行ってから、その情報をパッケージ化して、ビデオスキルAPIで処理可能なディレクティブ(JSONブロック)を作成するAlexaサービスです。
  • AlexaビデオスキルAPI - クラウドのAlexaからFire TVのVSK Agentにディレクティブを送信するサービスです。ディレクティブは、VSK Agentからインテントとしてブロードキャストされます。処理されるディレクティブの種類は、インターフェースによって異なります。詳細については、 APIリファレンスの概要を参照してください。
  • Androidアプリ - ストリーミングメディアコンテンツをユーザーに表示できるネイティブのAndroidアプリです。まだアプリがない場合は、出発点としてサンプルアプリを利用することができます(または、サンプルアプリを参考に独自のコードを記述することができます)。
  • BroadcastReceiverクラス - Fire TVのVSK Agent経由でAlexaからアプリに送信されるディレクティブを受け取って処理する、アプリ内のクラスです。
  • DynamicCapabilityReporterクラス - ユーザーの状態に基づいて機能を報告する、アプリ内のクラスです。このクラスは、VSK Agent Client Libraryの初期化の一環として、VSK Agentクライアントのインスタンスを作成します。

ワークフローの概要

アプリの統合の大まかなワークフローは、次のようになります。

  1. ユーザーがAlexaにリクエストを知らせます。クラウドのAlexaがリクエストを特定の種類の発話として解釈し、その情報をパッケージ化してディレクティブを作成します。
  2. AlexaはビデオスキルAPIを使用して、そのディレクティブをFire TVデバイスに転送します。処理されるディレクティブの種類は、ビデオスキルAPIのインターフェースによって異なります。プライマリインターフェースはRemoteVideoPlayerで、 SearchAndPlayディレクティブとSearchAndDisplayResultsディレクティブという2種類のディレクティブを送信します。SearchAndPlayディレクティブは「…を見せて/再生して」というリクエストで、SearchAndDisplayResultsディレクティブは「…を検索して/探して」というリクエストです(ビデオスキルAPIにはほかにもインターフェースがありますが、Fire TVのパートナーに推奨されているのはRemoteVideoPlayerのみです)。
  3. Fire TVで、VSK Agentと呼ばれるサービスがAlexaディレクティブを受け取り、そのディレクティブをAndroidインテントとしてブロードキャストします。インテントは、実行する必要のある処理やアクションを示す情報のパケットです。
  4. アプリのマニフェストには、インテントフィルターとBroadcastReceiverが含まれます。(アプリのマニフェストで宣言する)インテントフィルターで、VSK Agentからのインテントをアプリでリッスンすることを指定します(これにより対象とするインテントの種類を絞り込みます)。BroadcastReceiverでは、インテントを処理できるレシーバーを指定します。VSK AgentからAlexaディレクティブを含むインテントがブロードキャストされると、アプリがそのインテントを処理します。
  5. BroadcastReceiverのロジックで、ディレクティブを読み取り、適切に処理します(ユーザーがリクエストしたビデオを取得するなど)。リクエストを処理するロジックは、開発者が記述する必要があります。
  6. BroadcastReceiverは、VSK Agentにメッセージ(PendingIntent)を送り返して、ディレクティブがアプリで正常に処理されたことを知らせます。レスポンスのステータスは、ディレクティブが正常に処理されたかどうかを示すブール値です。

統合の手順

アプリのみの統合を行うには、次の手順を実行します。

ビデオチュートリアル

このビデオチュートリアルでは、アプリのみの統合方法を用いた、Fire TV対応アプリへのVSK統合を概説しています。

サンプルアプリ

Fire TV対応サンプルアプリを使用して、統合を実際に確認できます。このアプリには、メッセージを解析して一致するカタログタイトルを再生するための基本的なロジックが含まれています。実装手順でこのサンプルアプリを使用する必要はありません。独自のアプリを使用して同じ手順を実行できます。ただし、サンプルアプリを参照すると、実装手順の詳細をコンテキストの中で確認できるため、統合の理解を深めるのに役立ちます。

VSKのしくみを理解するためにサンプルアプリをセットアップするだけであれば、手順5、6、7、8のコーディング作業は省略して構いません。これらのコードは既にサンプルアプリに組み込まれています。ただし、実際の環境における統合の手順を実例で示すことも、サンプルアプリの目的の1つとなっています。そのため、前述の手順は省略して構いませんが、独自アプリのコードを作成する際には、サンプルアプリのコードを確認して、参考にしてください。

サンプルアプリを利用する際には、次のようなコールアウトに注意してください。

サンプルアプリに関する注意事項

統合の手順内のこのようなコールアウトには、サンプルアプリに関して各手順で必要な内容が示されています。

開発の推定所要時間

アプリのみの統合では、クラウド側の統合と比較して開発にかかる時間が大幅に短くなります。これは、関連するコンポーネントが少なく、開発作業がAndroidプロジェクト内で完結するためです。既にカタログ統合が済んでいて、検索などを行うためのテキスト入力を処理するロジックがアプリにある場合は、アプリのみのVSK統合を短時間で完了することができます(2、3週間以内)。

サンプルアプリを確認するだけの場合(独自アプリでのコーディングはスキップする場合)、2~3時間もあればサンプルアプリを動作させることができます。

次のステップ

最初の手順として、手順1: カタログを統合するに進みます。