開発者コンソール

アプリのみの統合でサポートされる機能


アプリのみの統合でサポートされる機能

アプリのみの統合でサポートされる機能を以下に示します。

サポート対象の機能の概要

アプリの機能を報告する際(手順5: アプリの静的機能を報告するまたは手順6: アプリの動的機能を報告する)、JSONオブジェクト形式で機能を記述したテキストファイルをAndroidプロジェクトのres/rawに保存しました。これらの機能は、マニフェスト(静的機能の場合)またはDynamic Capability Reporterクラス(動的機能の場合)のいずれかのコードで参照されます。

機能のテキストファイルでは、capabilities配列は、interfacetypeversionsupportOperationsの各プロパティを持つオブジェクトのリストです。サポートされているインターフェースの詳細については、以下のセクションを参照してください。

RemoteVideoPlayer機能

Alexa.RemoteVideoPlayerを機能に含めると、RemoteVideoPlayerインターフェースのディレクティブをアプリでサポートできることを示すことができます。このインターフェースには、 SearchAndPlaySearchAndDisplayResultsの2つの操作が含まれます。これらの操作を使用すると、ユーザーはビデオコンテンツの検索や再生を行うことができます。たとえば、ユーザーは「『ブレイキング・バッド』を検索して」(SearchAndPlay)や「アレクサ、『ブレイキング・バッド』を見せて」(SearchAndDisplayResults)という発話を使用できます。開発者はサポートするディレクティブを指定することができます。

例:

{
  "type": "AlexaInterface",
  "interface": "Alexa.RemoteVideoPlayer",
  "version": "3.1",
  "configurations": {
    "operations": [
      "SearchAndPlay",
      "SearchAndDisplayResults"
    ],
    "catalogs": [
      {
        "type": "VIDEO_INGESTION_IDENTIFIER",
        "sourceId": "<パートナーIDを挿入>"
      }]
  }
}

operations配列は、たとえばSearchAndDisplayResultsはサポートせず、SearchAndPlayのみをサポートするなど、特定の操作のみのサポートを宣言するためのオプションのフィールドです。

Alexa.RemoteVideoPlayerのバージョン3.1以降では、catalogsオブジェクトも指定する必要があります。catalogsの値は配列です。この配列には、typesourceIdの2つのプロパティを持つオブジェクトが格納されます。値は次のとおりです。

フィールド 説明 データ型
catalogs
アプリのカタログを指定します。この配列には、typesourceIdの2つのプロパティを持つオブジェクトが格納されます。 配列
type
値としてVIDEO_INGESTION_IDENTIFIERを設定します。 文字列
sourceID
値としてパートナーIDを設定します。このパートナーIDは、カタログ統合を行う際にカスタマイズしたCDFファイルPartnerフィールドの値です。

例:ontv

文字列

現在、Fire TVはカタログのマッピングをバックエンドのプロセスで取得し、それにより、ASINとカタログがマッピングされます(そのため、ライブアプリテスト(LAT)への申請の手順が必要になります)。ただし将来的には、ここで指定したパートナーID値に基づいてカタログが取得されるようになります。

PlaybackController機能

Alexa.PlaybackControllerを機能に含めると、Alexa.PlaybackControllerインターフェースのディレクティブをアプリでサポートできることを示すことができます。このインターフェースは、オーディオまたはビデオコンテンツの再生、停止、ナビゲーションに使用されます(「アレクサ、早送りして」や「アレクサ、停止して」など)。

PlaybackControllerインターフェースには、configurationsオブジェクト内で指定されたoperations配列のリストが含まれます。使用できるoperationsは、PlayPauseStopStartOverNextPreviousRewindFastForwardです。

例:

{
  "type": "AlexaInterface",
  "interface": "Alexa.PlaybackController",
  "version": "3",
  "configurations": {
    "operations": [                
        "Pause",
        "Play",
        "Stop",
        "Resume",
        "Next",
        "Previous",
        "FastForward",
        "Rewind",
        "StartOver"
        ]
  }
}

Alexa.SeekControllerインターフェースAlexa.ChannelControllerインターフェースAlexa.KeypadControllerインターフェースなど、その他のインターフェースは、アプリのみの統合ではまだサポートされていません。

また、このインターフェースを実装する代わりにAlexa.ChannelControllerインターフェースがサポートされている場合でも、ライブTVフィードで推奨される統合は、リニアTVについてに記載されているとおり、AndroidのTV入力フレームワークを使用する方法です。

SeekController機能

Alexa.SeekControllerを機能に含めると、Alexa.SeekControllerインターフェースのディレクティブをスキルでサポートできることを示すことができます。このインターフェースを使用すると、ユーザーがメディアタイムラインの特定の位置に移動できるようになります。

たとえば、「アレクサ、60秒早送りして」や「アレクサ、5分早戻しして」などです(アプリでメディアアイテムの早送りまたは早戻しのみが可能で、タイムラインの別のポイントまでシークできない場合は、代わりにPlaybackControllerインターフェースを実装します)。

例:

{
  "type": "AlexaInterface",
  "interface": "Alexa.SeekController",
  "version": "3",
  "configurations": {
    "operations": [
      "AdjustSeekPosition"
    ]
  }
}

ChannelController機能

Alexa.ChannelControllerを機能に含めると、Alexa.ChannelControllerインターフェースのディレクティブをアプリでサポートできることを示すことができます。このインターフェースを使用すると、エンターテインメントデバイスのチャンネルを変更したり進めたりすることができます(「アレクサ、チャンネルをPBSに変えて」など)。

例:

{
  "type": "AlexaInterface",
  "interface": "Alexa.ChannelController",
  "version": "3",
  "configurations": {
    "operations": [
      "ChangeChannel"
    ]
  }
}

Alexa.KeypadController機能

Alexa.KeypadControllerを含めると、Alexa.KeypadControllerインターフェースのディレクティブをアプリでサポートできることを示すことができます。このインターフェースは、左右または上下へのスクロールや、フォーカスされているウィジェットの選択に使用されます。

たとえば、「アレクサ、右にスクロールして」などです。 上記のコード例に従って、ビデオスキルでサポートしているキーのリストを指定します。キー値には、 UPDOWNLEFTRIGHTSELECTPAGE_UPPAGE_DOWNPAGE_LEFTPAGE_RIGHTINFOMOREがあります。

例:

{
  "type": "AlexaInterface",
  "interface": "Alexa.KeypadController",
  "version": "3",
  "configurations": {
    "operations": [
      "SendKeystroke"
    ]
  }
}

keysプロパティを含んでいるインターフェースは、Alexa.KeypadControllerインターフェースだけです。

アプリ内の音声ナビゲーション・選択で説明しているように、Fire TVではデフォルトで、アプリ内での音声によるスクロールと選択が可能です。Alexa.DiscoveryレスポンスKeypadControllerインターフェース機能のサポートを明示しないと、VSKはデフォルトのアプリ内音声ナビゲーション・選択機能にフォールバックします。

これに対して、KeypadControllerインターフェース機能のサポートを明示した場合、デフォルトのアプリ内音声ナビゲーション・選択機能は無効になり、音声によるスクロールと選択は、アプリで受信するKeyStrokeディレクティブへのレスポンスを通じてのみ行われます。

KeypadControllerのサポートを宣言する場合は、ビデオスキルでサポートするキー(keys)のリストを指定します。キー値には、 UPDOWNLEFTRIGHTSELECTPAGE_UPPAGE_DOWNPAGE_LEFTPAGE_RIGHTINFOMOREがあります。いずれかのキーコマンドのサポートを宣言すると、すべてのキーコマンドのアクションを管理していると見なされます。つまり、一部のキーコマンドのみをサポートして、それ以外をサポートしないという宣言はできません。たとえば、UPを宣言しない場合でも、Alexaは、UP値を含んだkeystrokeペイロードを送信します。サポートされていないUP機能を補うために、デフォルトのアプリ内音声ナビゲーションおよび選択機能が働くことはありません。