Fire TVに関するよくある質問(FAQ)


Fire TVに関するよくある質問(FAQ)

アプリ全般に関する質問

Q: Amazon Fire TVプラットフォームにアプリを申請する方法を教えてください。
Amazon開発者ポータルでアカウントを作成後、同ポータル経由でアプリを申請いただけます。

既にAmazonでアプリを公開済みの場合は、Amazon Fire TV用に別のAPKを追加してアプリを更新します。 詳細については、デバイスターゲティングの使用を参照してください。

Q: 自分が開発したアプリはAmazon Fire TVプラットフォームで動作するでしょうか?
まずAmazon Fire TVデバイスの仕様に適合している必要があります。デバイスと機能の仕様について詳しくは、Fire TVデバイスの仕様を参照してください。

アプリがAmazonアプリストアのコンテンツポリシーに準拠していることも不可欠です。また、アプリのテストをご自身で行い、問題を見つけたらアップデート版の申請をお勧めします。

Q: アプリがAmazon Fire TVデバイスで動作するかどうか、どうすれば確認できますか?
機能の中にamazon.hardware.fire_tvが存在することを確認します。Fire TVの具体的な機種について知りたい場合は、モデルの番号や型を調べてください。ただし、必ずamazon.hardware.fire_tv機能のフォールバックを含めておくようにします。詳細については、Fire TVデバイスを識別するを参照してください。
Q: テスト目的でアプリをAmazon Fire TVにサイドロードできますか?
はい。その際はAndroid Debug Bridge(adb)をご利用ください。 詳細については、アプリとゲームの開発を始めるを参照してください。 
Q: 開発者向けにAmazon Fire TVのテスト用デバイスは提供されていますか?
開発者向けのテスト用デバイスは、Amazonでは提供していません。

Amazon Fire TVデバイスは、米国英国ドイツのAmazonリテールサイトでご購入いただけます。国ごとの販売状況については、商品詳細ページを参照してください。

Q: Amazon Fire TVプラットフォームでは、具体的にどのような機能がサポートされていますか?
デバイスと機能の仕様について詳しくは、Fire TVデバイスの仕様を参照してください。Fire TVはAndroidをベースにしているため、Androidで実行できることはFire TVでもほぼすべて実行できます。Fire OSには、Fire OS 5とFire OS 6という2つのバージョンがあります。 Fire OS 5はAndroid 5.1(Lollipop、APIレベル22)を、Fire OS 6はAndroid 7.1(Nougat、APIレベル25)をベースとしています。詳細については、Fire OS 6で動作するAmazon Fire TVデバイス用アプリを開発するを参照してください。また、Fire TVはGoogleのサービス(Googleマップ、Googleアプリ内課金など)に対応していませんのでご注意ください。Amazon SDKを使えば同等のサービスを利用できます。詳細については、Fire TVとAndroid TVにおける開発の違いをご覧ください。
Q: Fire TV対応アプリをすぐに開発したい場合に利用できるテンプレートには、どのようなものがありますか?
アプリ用のテンプレートとして、 Fire App BuilderFire TV対応ウェブアプリスターターキット(WASK)の2種類を用意しています。Fire App BuilderはアプリのフレームワークとしてJavaベースのAndroidを使用し、WASKでは HTML、CSS、JSといったウェブ技術が使われています。両者の詳細な比較については、開発フレームワークの比較を参照してください。
Q: Amazon Fire TVプラットフォームでアプリの販売促進を図るには、どうすればよいでしょうか?
アプリをマーケティングするを参照してください。
Q: Amazon Fire TVプラットフォームに関する情報は、どこで入手できますか?
各Fire TVデバイスのハードウェア、ソフトウェア、メディアの仕様について詳しくは、Fire TVデバイスの仕様を参照してください。
Q: アプリはどのような状況で一時停止しますか? また、一時停止の動作をどのように実装すればよいですか?
アプリが一時停止するのは、Fire TVリモコンかAmazon Fire TVゲームコントローラー(日本では現在お取り扱いできません)のマイク(音声認識)ボタンや [ホーム] ボタンが押されたときです(リモコン入力 を参照してください)。[戻る] ボタンが押されたときも、現在のアクティビティが一時停止します。この場合、スタック上の前のアクティビティが再開しますが、別のアプリのアクティビティである場合もあります。

一時停止の動作を処理するには、ほかのAndroidアプリと同様、アクティビティにonPause()メソッドを実装します。onPause()メソッドでは、ユーザーの状態や場所を保存して、アプリが再開したときにユーザーの位置が一時停止前と同じになるようにしてください。

また、メディアアプリの場合、次の要件を満たす必要があります。

  • ビデオを再生するアプリの場合、再生が一時停止状態になったらすぐにデコーダーなどのメディアリソースをすべて解放する必要があります。このようなリソースはハードウェアベースで限りがあるうえ、メモリを大量に消費するためです。詳細については、Releasing the Media Player(MediaPlayerを解放する)およびMediaPlayer.release()を参照してください。
  • オーディオを再生するアプリの場合、一時停止しても再生を継続できますが、ほかのアプリから要求された場合は、オーディオフォーカスを放棄する必要があります。詳細については、Audio Focus(オーディオフォーカス)を参照してください。
Q: Amazonアプリ内課金(IAP)APIをFire TV対応アプリで使用できますか?
はい。Amazonのアプリ内課金(IAP)APIは、どのFire TVデバイスでも、Fire TVリモコンやゲームコントローラーと連携して機能します。ウェブアプリのトランザクションをプレビューする場合は、App Testerを使用してください。
Q: Amazon Device Messaging(ADM)をFire TV対応アプリで使用できますか?
Amazon Device Messagingを使用して、プッシュメッセージやそのほかのデータを受け取ることができます。
Q: Amazon Maps APIをFire TV対応アプリで使用できますか?
Amazon Fire TVが位置情報サービスに非対応のため、現時点でAmazon Maps APIはサポートされていません。
Q: Amazonモバイル広告APIをFire TV対応アプリで使用できますか? 
現時点で、Amazonモバイル広告APIはFire TVでサポートされていません。
Q: Amazonアプリストア内にあるアプリの詳細ページへのリンクを貼ることはできますか?
はい。Amazonアプリストアのディープリンクは、ほかのアプリと同様にFire TV対応アプリでも機能します。ディープリンクの詳細については、アプリ内でAmazon関連ページへのリンクを設定するを参照してください。ただし、ユーザーにアプリの評価を促すことは避けてください。ユーザーには、アプリ概要の画面で評価をしてもらいます。
Q: オンスクリーンキーボードをテンキーパッドに変更する方法を教えてください。
標準のAndroidメカニズムを利用すれば、どのEditTextウィジェットに対してもIME(入力方式エディター)を構成できます。XMLでは、android:inputType="number"を使用します。
<EditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/edittext"
android:inputType="number"/>
Q: Amazon Fire TVでスクリーンショットを撮るにはどうすればよいですか?
Fireデバイスでスクリーンショットを撮るで詳細情報をご覧ください。
Q: Googleのアプリ内課金テクノロジーを使用しているのですが、Amazon Fire TVプラットフォームでも使えますか?
いいえ。Googleのアプリ内課金APIなどのサービスは、Google Mobile Servicesにアクセスする必要があるため、Amazon Fire TVプラットフォームでは利用できません。代わりに、Amazonではデジタルコンテンツやサブスクリプションの提供を容易にする独自のアプリ内課金APIを提供しています。詳細については、Fire TVとAndroid TVにおける開発の違いをご覧ください。
Q: Amazon Fire TVまたはFire TV Stick対応のアプリをドイツやオーストリアで配布する場合、ほかに注意すべき基準はありますか?
はい。Amazonでは、Amazon Fire TVやFire TV Stickデバイス、SDメモリカード、接続されている外部ストレージ(該当する場合)に対して、何らかのビデオコンテンツやオーディオコンテンツを複製・録音・ダウンロード・保存する機能(または類似機能)が備わっているアプリを、Amazon Fire TVまたはFire TV Stick用としてドイツやオーストリアで配布することを禁止しています。該当する機能が含まれているとAmazonが判断した場合、公開されません。

Fire OSに関する質問

Q: Android TVとv17 Leanback Libraryは、Fire OSでサポートされますか?
Fire OS 5とFire OS 6では、Android TV機能とLeanback Libraryの両方がサポートされています。ただし、Leanback LibraryのSearchFragmentクラスを利用した音声認識はサポートされていません。詳細については、Fire TVに検索機能を実装するを参照してください。

メディアとDRMに関する質問

Q: Fire TVでは、どのようなサードパーティ製のメディアプレーヤーSDKがサポートされますか?
Androidメディア再生APIと暗号化APIを実装しているメディアプレーヤーSDKであれば、Amazon Fire TVプラットフォームで機能します。  そのようなSDKの例として、Amazon Port of the ExoPlayerAndroid MediaPlayerVisualOn OnStream MediaPlayer+ SDKNexStreaming NexPlayer SDKなどがあります。詳細については、メディアプレーヤーを参照してください。カスタムのメディアプレーヤーを使用している場合は、オーディオとビデオの同期を参照してください。
Q: Microsoft PlayReady DRMで暗号化されたメディアを再生する機能を実装する場合、どのような方法がありますか?
Amazon Fire TVプラットフォームでは、保護されたメディアを再生するためのAndroid MediaCryptoクラスがサポートされています。PlayReadyをサポートするサードパーティ製のメディアプレーヤーSDKを使用することも可能です。各Fire TVデバイスがサポートするPlayReadyのバージョン情報については、Fire TVデバイスの仕様にあるメディアの仕様表を参照してください。
Q: Amazon Fire TVでは、暗号化されたオーディオを含むPlayReadyコンテンツはサポートされますか?
Fire TVでサポートされるのは、暗号化されたビデオと暗号化されていないクリアなオーディオを含むPlayReadyコンテンツのみです。Widevine DRMもサポートされます。詳細については、Fire TVデバイスの仕様を参照してください。暗号化されたオーディオとビデオの両方を含むコンテンツを再生する方法について詳しくは、こちらからお問い合わせください。
Q: ドルビーデジタルオーディオをFire TVデバイスで復号する方法を教えてください。
Fire TVとFire TV Stickは、どちらもドルビーデジタル(AC3)とドルビーデジタルプラス(eAC3)の復号機能を搭載しています。Fire TV(第3世代)はドルビーアトモス(EC3_JOC)もサポートしています。これらの形式は、標準のAndroidメディアプレーヤーライブラリを使用して再生できます。Amazon Fireタブレット用のDolbyAudioProcessing SDKは、Fire TVデバイスでサポートされない(または必要ない)ことに注意してください。ドルビー再生の詳細については、ドルビーの統合ガイドライン(Fire TV向け)を参照してください。
Q: ファームウェアとOSを検証するためのセキュアブートは、Fire TVでサポートされますか?
はい。
Q: OSはアプリの署名確認を強制しますか?
はい。
Q: 出力はHDMI上のセキュアチャネルを通してHDCP保護されますか?
はい。
Q: Amazon Fire TVでは、カスタマイズ可能なクローズドキャプション(CEA-708)はサポートされますか?
現時点では、Fire TVのクローズドキャプションサポートにはプラットフォームレベルの制限があります。メディアアプリでは、サードパーティ製のメディア再生SDKまたは実装したアプリそのものを通じて視聴者が字幕をカスタマイズできるUIを備えている必要があります。

Amazon版のExoPlayerを使用している場合、4Kストリーム(DASH)のキャプションに対するスタイル指定は、ExoPlayerの埋め込みスタイルを使用して処理されます。埋め込みスタイルを無視するには、playerView.subtitleView.setApplyEmbeddedStyles(false)を使用します。ただし、これはExoPlayer側の問題であって、Amazon固有の問題ではないため、詳細についてはExoPlayerのフォーラムを参照してください。(Fire App Builderのクローズドキャプション機能の詳細については、キャプションのサポートを参照してください)。

Q: Amazon Fire TVでは、クローズドキャプションにどのようなフォントを使用できますか?
Amazon Fire TVで利用できるプラットフォームフォントは限られています。CEA-708で定義されている各スタイルカテゴリーに対して、フォントファイルのライセンスを取得してから埋め込む必要があります。

メディアの再生に関する質問

Q: メディア再生に関して、リソースとメモリを適切に処理するうえでのベストプラクティスを教えてください。

Amazon Fire TVのメディア再生に使用されるリソースはハードウェアベースで、メモリに限りがあるため、アプリ側には適切な動作が要求されます。使い終えたメディアリソースは確実に解放してください。

ビデオを再生するアプリは、再生を一時停止し、デコーダーなどの全メディアリソースをonPause()メソッド内ですぐに解放する必要があります。詳細については、Releasing the Media Player(MediaPlayerを解放する)およびMediaPlayer.release()を参照してください。

アプリが(<video>HTMLタグを使用して)AndroidのWebView経由でビデオを再生する場合、アプリが一時停止または停止しても、現時点では、ハードウェアメディアリソースはシステムによって解放されません。この問題を回避するには、onPause()メソッドとonStop()メソッドを実装する際にプロセスを強制的に終了して、これらのリソースを明示的に解放してください。

public void onStop() {
   super.onStop();
   android.os.Process.killProcess(android.os.Process.myPid());
}

詳細については、次のリンク先を参照してください。

Q: バックグラウンドで音楽を再生するアプリを作成したのですが、一時停止した際にオーディオ再生が止まるのはなぜでしょうか? また、このアプリを起動しても、ほかのアプリのオーディオが再生され続けるのはなぜですか?
オーディオフォーカスの管理に問題があるようです。アプリは再生開始時にオーディオフォーカスをリクエストするとともに、メディアボタンイベントのレシーバーとして登録を行う必要があります。また、アプリがオーディオフォーカスを放棄した際(再生終了時やほかのアプリからオーディオフォーカスの要求があった場合)、メディアボタンイベントのレシーバー登録を解除しなければなりません。具体的な方法は次のとおりです。

詳細については、次のリンク先を参照してください。

Q: ミュージックアプリをバックグラウンドで実行して音楽を再生しているときに、不規則に停止するのはなぜでしょうか?
音楽再生アプリをフォアグラウンドサービスとして実行してください。バックグラウンドサービス(デフォルト)は、リソースが少なくなると、システムによって自動的にシャットダウンされます。詳細については、AndroidガイドのMedia Playback(メディアの再生)startForeground()メソッド(Serviceクラス内)をご確認ください。
Q: テレビの電源が消されたり、HDMIケーブルが抜かれたりした場合の対処方法を教えてください。
HDMIが切断した場合の対処方法は、オーディオとビデオで異なります。詳細については、HDMIイベントを処理するを参照してください。
Q: メディアの再生時に、デバイスがスタンバイまたはスリープモード(スクリーンセーバー)に遷移するのを防ぐ方法について教えてください。
メディアの再生中にAmazon Fire TVとテレビがスタンバイまたはスリープモード(スクリーンセーバー)に遷移しないようにする(オンの状態を維持する)には、アクティビティにKEEP_SCREEN_ONフラグを設定するか、PowerManagerからWakeLockを取得します。オーディオやビデオの再生を行っていないときは、すべてのWakeLockをアプリで解放して、デバイスとテレビがスリープモードに遷移し、電力消費が少なくなるようにする必要があります。WakeLockの使用方法の詳細については、PowerManagerおよびPowerManager.WakeLockクラスを参照してください。

アプリがオーディオを再生する際にPartialWakeLock(PARTIAL_WAKE_LOCK)を設定すると、テレビはオンの状態を維持し、デバイスはアイドルになるとスリープモードに遷移します(スクリーンセーバーが表示されます)。これは、モバイルデバイスにおけるPartialWakeLockの動作とは異なります。モバイルデバイスでは、CPUはオンに維持され、画面は消灯します。Amazon Fire TVの動作は、HDMI経由でオーディオを再生する場合に、テレビがオンである必要があるためです。繰り返しになりますが、アプリがオーディオの再生を行っていないときはWakeLockを解放して、テレビがスリープモードに遷移できるようにしましょう。

SCREEN_BRIGHT_WAKE_LOCKフラグやSCREEN_DIM_WAKE_LOCKフラグを設定しても、デバイスの動作に影響はありません。

Q: デバイスがスリープモードに遷移した(スクリーンセーバーがオンになった)ことを検知するにはどうすればよいですか?
スリープモードはAndroidの機能です。テレビがオンのときにAmazon Fire TVがスリープモードに遷移すると、スクリーンセーバーが表示されます。デバイスがスリープモードに遷移したか、スリープモードからほかのモードに遷移したことを検知するには、Intent.ACTION_DREAMING_STARTEDおよびIntent.ACTION_DREAMING_STOPPEDのレシーバーとしてアプリを登録します。

ミュージックアプリ以外のアプリでオーディオを再生する場合は、デバイスがスリープモードに遷移した際に再生も一時停止するようにしてください。

Q: ビデオを再生するのに、AndroidのWebView<video>HTMLタグを使用できますか?
使用可能ですが、制限があります。現時点では、アプリが一時停止または停止したときに、ハードウェアメディアリソースはシステムによって解放されません。この問題を回避するには、次のonStop()メソッドを実装して、アプリのプロセスを明示的に停止させます。
public void onStop() {
super.onStop();
android.os.Process.killProcess(android.os.Process.myPid());
}

この問題が原因で、アプリのユーザーエクスペリエンスやナビゲーションが不安定になることもあります。デバイスでメディアを再生する方法としては、サードパーティ製のメディアプレーヤーSDKの使用をお勧めします。

Q: 4K Ultra HDビデオはアプリで再生可能ですか?

はい。Fire TV(第2世代と第3世代)やFire TV Stick(第2世代)が4K対応テレビに接続されていれば、4K Ultra HDビデオを再生できます。Fire TV(第1世代)とFire TV Stick(第1世代)では4Kビデオを再生できません。詳細については、Fire TVデバイスの仕様を参照してください。

4Kコンテンツを再生する前に、(1)Fire TVデバイスが4Kをサポートしていること、(2)接続されているテレビが4Kに対応していることをアプリ側でチェックする必要があります。4Kモードへの切り替えは、Amazon 4K拡張ライブラリを利用して行えます。

Ultra HDビデオ対応アプリがAmazonによって認定されるには、ユーザーエクスペリエンスの要件を満たす必要があります。通常、認定プロセスは数週間を要します。詳細については、4K Ultra HDの仕様を参照してください。

コントローラーに関する質問

Q: Amazon Fire TVゲームコントローラー(日本では現在お取り扱いできません)ですが、以前のバージョンにはあったメディアボタンがありません。メディアを再生するにはどうすればよいですか?
Amazon Fire TVでは、アナログスティック([再生/一時停止])を押したとき、およびL1ショルダー([早戻し])ボタン やR1ショルダー([早送り])ボタンを押したときに、メディア入力イベントが生成されます。これらのボタンを使用しないアプリやゲームの場合でも、ユーザーがメディアの再生をバックグラウンドでコントロールできるように、ボタンイベントをアプリでキャプチャや破棄などの処理対象にしないでください。

Amazon Fire TVゲームコントローラー(日本では現在お取り扱いできません)のメディアボタンをアプリでほかの目的に転用している場合、新しいAmazon Fire TVゲームコントローラーのユーザーは、ボタンがなければその機能を使用できません。両方のゲームコントローラーに共通するボタンを使用するようにアプリをアップデートしたり、画面上に表示されるヒントを更新したりすることを検討してください。

Q: Amazon Fire TVゲームコントローラー(日本では現在お取り扱いできません)から音量操作を行うには、どうすればよいですか?
Fire TV(第3世代)以外のFire TVデバイスでは、Amazon Fireゲームコントローラーのヘッドホンジャックにオーディオをストリーミングできます(現行世代のコントローラーのみ)。音量操作には、左側/右側のトリガーボタン(L2/R2)ボタンを使用します。

音量操作はシステム機能なので、アプリでほかのボタンにマッピングはできません。トリガーボタンを使用しないアプリやゲームの場合でも、ユーザーがメディアの再生をバックグラウンドでコントロールできるように、これらのボタンイベントをアプリでキャプチャや破棄などの処理対象にしないでください。

Q: アプリでFire TV音声認識リモコンの [マイク] ボタンをオーバーライドできますか?
[マイク] ボタンは、一時的オーディオフォーカスを要求してシステム全体の音声機能を起動するもので、オーバーライドすることはできません。アプリ開発の際は、このオーディオフォーカス変更イベント(AUDIOFOCUS_LOSS_TRANSIENT)に加え、ほかのオーディオフォーカス変更イベント(AUDIOFOCUS_LOSSAUDIOFOCUS_LOSS_TRANSIENT_CAN_DUCK)も処理する必要があります。各種オーディオフォーカスのリクエストは、音声に限らず、あらゆるアプリによって行われるため、オーディオフォーカスのあらゆるユースケースを適切に処理する必要があります。詳細については、音声検索によるオーディオフォーカス処理を参照してください。
Q: [メニュー] ボタンにはどのような機能がありますか?また、アプリ内でオーバーライドできますか?
デフォルトでは、[メニュー] ボタンはAndroidコンテキストメニューを起動し、画面の中央にメニューアイテムのリストを表示します。[メニュー] ボタンはオーバーライドが可能で、カスタムメニューのユーザーインターフェイスを提供したり、様々な目的に使用できます。

メニューアイテムが1つだけの場合は、単純な切り替えスイッチ(たとえば、クローズドキャプションのオン/オフ)として [メニュー] ボタンを使用し、この機能をユーザーに知らせるためのヒントを画面に表示させることもできます。

Q: コントローラーを接続、切断、またはスリープ状態にすると、アクティビティが始めから再起動するのはなぜですか?
これらのイベントは、Androidによって実行時の構成変更として処理されます。同様のイベントをアプリで無視するには、AndroidManifest.xmlを修正してandroid:configChanges属性を追加し、keyboardkeyboardHiddennavigationのキーを含めます。
<activity android:name="MyActivity"
android:configChanges="keyboard|keyboardHidden|navigation">

詳細についてはAndroidガイドに記載された実行時の変更の処理を参照し、configChanges属性の情報とあわせて、アプリの構成変更の処理方法も必要に応じてご確認ください。

Q: ゲームコントローラーの切断は、アプリやゲームでどのように処理すればよいですか?
Amazon Fire TVゲームコントローラー(日本では現在お取り扱いできません)は、アイドル状態やスティックの角度が変わらない状態が5分を超えると、バッテリー残量を維持するためにシステムから切断される可能性があります。ほかのコントローラーも、アイドル状態が続いたりバッテリー残量が無くなると切断される可能性があります。コントローラー切断イベントを処理するには、AndroidのOnInputDeviceRemovedリスナーを使用してください。コントローラーが利用できないことをユーザーに知らせるために、ゲームを一時停止させたり、ダイアログを表示したりすることを検討してください。

Fire TV Stickに関する質問

Q: Amazon Fire TVとFire TV Stickの違いは何ですか?
Fire TVデバイスの仕様に、Fire TVデバイス全種の仕様が記載されています。Fire TVデバイスの名称に関する詳細については、Amazon Fire TVデバイスの命名規則を参照してください。
Q: Amazon Fire TV対応アプリをFire TV Stickに適応させる方法を教えてください。
Amazon Fire TVとFire TV Stickはどちらも同じプラットフォームがベースになっています(詳しくはFire OSの概要を参照してください)。ただし、Fire TV Stickはハードウェアの面でより制限があるため、パフォーマンスと安定性を確保するためにアプリを最適化する必要があります。ハードウェアアクセラレーションパフォーマンスに関するAndroidのベストプラクティスに従うことが重要です。特に、OpenGLとテクスチャについては注意が必要です。各Fire TVデバイスの詳細な仕様については、Fire TVデバイスの仕様を参照してください。
Q: プログラムでFire TV Stickデバイスを識別するにはどうすればよいですか?
amazon.hardware.fire_tvという機能を確認すれば、すべてのFire TVデバイスを識別できます。Fire TV Stickに絞って確認する場合は、MODELがAFTMAFTTのどちらになっているかを調べてください。詳細については、Fire TVデバイスを識別するを参照してください。
Q: アプリ内の画像や背景の一部が表示されなかったり、画像の代わりに灰色のボックスが表示されたりするのはなぜですか?
通常、この現象はビットマップ画像やテクスチャが大きすぎる場合に発生します。Fire TV Stickがサポートするテクスチャは、最大で2048x2048までです。アプリにこの問題がある場合は、次のようなエラーがログに表示されます。
W/OpenGLRenderer( 8941): Bitmap too large to be uploaded in a texture (3840x2160, max=2048x2048)

また、Fire TV用の画像は、drawables/フォルダではなく、​drawables-xhdpi/フォルダに格納する必要があります。デフォルトのドローワブルをプラットフォームに応じて拡大すると、テクスチャ制限を超える大きさの画像が作成されることがあります。