Fire TVに関するよくある質問(FAQ)
アプリ全般に関する質問
- Q: 自分が開発したアプリはAmazon Fire TVプラットフォームで動作するでしょうか?
- まずAmazon Fire TVの仕様に適合している必要があります。デバイスと機能の仕様の詳細については、Fire TVのデバイス仕様を参照してください。
-
アプリがAmazonアプリストアのコンテンツポリシーに準拠していることも不可欠です。また、アプリのテストをご自身で行い、問題が見つかった場合はアップデート版を申請することをお勧めします。
- Q: Amazon Fire TVプラットフォームにアプリを申請する方法を教えてください。
- Amazon開発者ポータルでアカウントを作成後、同ポータル経由でアプリを申請いただけます。
-
既にAmazonでアプリを公開済みの場合は、Amazon Fire TV用に別のAPKを追加してアプリを更新します。詳細については、デバイスターゲティングの使用を参照してください。
- Q: アプリがAmazon Fire TVデバイスで動作するかどうか、どうすれば確認できますか?
- 機能の中に
amazon.hardware.fire_tv
が存在することを確認します。Fire TVの具体的な機種について知りたい場合は、モデルの番号や型を調べてください。ただし、必ずamazon.hardware.fire_tv
機能のフォールバックを含めておくようにします。詳細については、Fire TVデバイスの識別を参照してください。 - Q: テスト目的でアプリをAmazon Fire TVにサイドロードできますか?
- はい。その際はAndroid Debug Bridge(ADB)を利用してください。詳細については、Fire TV対応アプリ・ゲームの開発についてを参照してください。
- Q: 開発者向けにAmazon Fire TVのテスト用デバイスは提供されていますか?
- 開発者向けのテスト用デバイスは、Amazonでは提供していません。
-
Amazon Fire TVデバイスは、米国、英国、ドイツのAmazonリテールサイトでご購入いただけます。国ごとの販売状況については、商品詳細ページを参照してください。
- Q: Amazon Fire TVプラットフォームでは、具体的にどのような機能がサポートされていますか?
- デバイスと機能の仕様の詳細については、Fire TVのデバイス仕様を参照してください。Fire TVはAndroidをベースにしているため、Androidで実行できることはFire TVでもほぼすべて実行できます。たとえば、DRM、オーディオ/ビデオコーデック、DIALといった機能を使用できます。
-
注: Fire TVでは、Googleのサービス(Googleマップ、Googleアプリ内課金など)はサポートされません。Amazon SDKを使用すれば、同等のサービスを利用できます。詳細については、Fire TVとAndroid TVにおける開発の違いを参照してください。
- Q: Fire TV対応アプリをすぐに開発したい場合に利用できるテンプレートには、どのようなものがありますか?
- Fire TV対応アプリを構築するためのテンプレートとして、Fire App Builderが用意されています。
- Q: Amazon Fire TVプラットフォームでアプリの販売促進を図るには、どうすればよいでしょうか?
- アプリのプロモーションを行うには、開発者向けプロモーションコンソールについてを参照してください。
- Q: ビデオ再生はどのような状況で一時停止しますか?また、その動作を実装するにはどうすればよいですか?
- ビデオ再生は、Fire TVリモコンまたはAmazon Fire TVゲームコントローラー(日本では現在お取り扱いできません)のマイク(音声検索)ボタンやホームボタンが押されたときに一時停止します(リモコン入力を参照してください)。戻るボタンが押されたときも、現在のアクティビティが一時停止します。この場合、スタック上の前のアクティビティが再開しますが、別のアプリのアクティビティである場合もあります。
-
一時停止の動作を処理するには、ほかのAndroidアプリと同様、アクティビティに
onPause()
メソッドを実装します。onPause()
メソッドでは、ユーザーの状態や場所を保存して、アプリが再開したときにユーザーの位置が一時停止前と同じになるようにしてください。 -
また、メディアアプリの場合、次の要件を満たす必要があります。
- ビデオを再生するアプリの場合、再生を一時停止するとともに、デコーダーなどのすべてのメディアリソースをすぐに解放する必要があります。これらのリソースはハードウェアベースで限りがあるうえ、メモリも制限されているためです。詳細については、MediaPlayerの解放および
MediaPlayer.release
(英語のみ)を参照してください。 - オーディオを再生するアプリの場合、一時停止しても再生を継続できますが、ほかのアプリから要求された場合は、オーディオフォーカスを放棄する必要があります。詳細については、音声フォーカスの管理(Androidドキュメント)を参照してください。
- ビデオを再生するアプリの場合、再生を一時停止するとともに、デコーダーなどのすべてのメディアリソースをすぐに解放する必要があります。これらのリソースはハードウェアベースで限りがあるうえ、メモリも制限されているためです。詳細については、MediaPlayerの解放および
- 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アプリストア内にあるアプリの詳細ページへのリンクを貼ることはできますか?
- はい。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のアプリ内課金(IAP)を使用しています。これはAmazon Fire TVプラットフォームでも動作しますか?
- GoogleのIAPは使用できませんが、AmazonのIAPに同等の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 7では、Android TV機能とLeanback Libraryの両方がサポートされています。ただし、Leanback Libraryの
SearchFragment
クラスを利用した音声認識はサポートされていません。詳細については、Fire TVでの検索機能の実装を参照してください。
メディアとDRMに関する質問
- Q: Fire TVでは、どのようなサードパーティ製のメディアプレーヤーSDKがサポートされますか?
- Fire TVではAmazon版ExoPlayerを使用できます。
- 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デバイスでサポートされない(または必要ない)ことに注意してください。ドルビー再生の詳細については、ドルビーの統合に関するガイドラインを参照してください。
- Q: ファームウェアとOSを検証するセキュアブートは、どのデバイスでもサポートされますか?
- はい。
- 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には、いくつかのプラットフォームフォントが既にシステムに組み込まれています。
メディアの再生に関する質問
- Q: メディア再生に関して、リソースとメモリを適切に処理するうえでのベストプラクティスを教えてください。
- Amazon Fire TVのメディア再生に使用されるリソースはハードウェアベースで、メモリに限りがあるため、アプリには適切な動作が要求されます。終了時やエラーの発生時には、メディアリソースを確実に解放してください。オーディオフォーカスとメディア再生を処理する方法の詳細については、オーディオフォーカスの管理とマルチメディアアプリの要件を参照してください。また、Androidのテクニカルドキュメントに記載されている詳細なガイダンスにも従ってください。
- Q: バックグラウンドで音楽を再生するアプリを作成したのですが、一時停止した際にオーディオ再生が止まるのはなぜでしょうか? また、このアプリを起動しても、ほかのアプリのオーディオが再生され続けるのはなぜですか?
- アプリでオーディオフォーカスの管理が正しく行われていない可能性があります。アプリは再生開始時にオーディオフォーカスをリクエストするとともに、メディアボタンイベントのレシーバーとして登録を行う必要があります。また、アプリがオーディオフォーカスを放棄した際(再生終了時やほかのアプリからオーディオフォーカスの要求があった場合)、メディアボタンイベントのレシーバー登録を解除しなければなりません。具体的な方法は次のとおりです。
- アプリが再生を開始するときに、
AudioManager.requestAudioFocus()
を使用してオーディオフォーカスをリクエストします。 - オーディオフォーカスを取得したら、
AudioManager.registerMediaButtonEventReceiver()
を使用してメディアボタンのレシーバーを登録します。 AudioManager.onAudioFocusChangeListener()
を使用して、オーディオフォーカスの喪失をリッスンします。- オーディオフォーカスが失われたら、再生を停止し、
AudioManager.unregisterMediaButtonEventReceiver()
を使用してメディアボタンのレシーバーを登録解除します。
- アプリが再生を開始するときに、
-
詳細については、次のリンク先を参照してください。
- Q: ミュージックアプリをバックグラウンドで実行して音楽を再生しているときに、不規則に停止するのはなぜでしょうか?
- 音楽再生アプリをフォアグラウンドサービスとして実行してください。バックグラウンドサービス(デフォルト)は、リソースが少なくなると、システムによって自動的にシャットダウンされます。詳細については、AndroidガイドのMediaPlayerの概要と、Serviceクラス(英語のみ)の
startForeground()
メソッドを参照してください。 - Q: TVの電源が消されたり、HDMIケーブルが抜かれたりした場合の対処方法を教えてください。
- HDMIが切断した場合の対処方法は、オーディオとビデオで異なります。詳細については、HDMIイベントの処理を参照してください。
- Q: メディアの再生中に、デバイスがスタンバイモードまたはDaydreamモード(スリープモード/スクリーンセーバー)に移行するのを防ぐにはどうすればよいですか?
- メディアの再生中にAmazon Fire TVとTVがスタンバイモードまたはスリープモード(スクリーンセーバー)に移行しないようにする(オンの状態を維持する)には、アクティビティに
KEEP_SCREEN_ON
フラグを設定するか、PowerManagerからWakeLockを取得します。オーディオやビデオの再生を行っていないときは、アプリですべてのWakeLockを解放して、デバイスとTVがスリープモードに移行し、電力消費が少なくなるようにする必要があります。WakeLockの使用方法の詳細については、PowerManager
クラスとPowerManager.WakeLock
クラス(どちらも英語のみ)を参照してください。 -
注: アプリでオーディオを再生するときにPartialWakeLock(
PARTIAL_WAKE_LOCK
)を設定すると、TVはオンの状態に維持され、デバイスがアイドル状態になるとDaydreamモードに移行します(スクリーンセーバーが表示されます)。これは、モバイルデバイスでのPartialWakeLockの動作とは異なります(モバイルデバイスでは、CPUはオンに維持されますが、画面は消灯します)。HDMI経由でオーディオを再生するには、TVがオンになっている必要があるためです。この場合も、アプリがオーディオを再生していないときはWakeLockを解放して、TVがスリープモードに移行できるようにしてください。 - Q: デバイスがDaydreamモードに移行した(スクリーンセーバーがオンになった)ことを検知するにはどうすればよいですか?
- DaydreamモードはAndroidの機能です。Amazon Fire TVがDaydreamモードに遷移すると、TVがオンの場合はスクリーンセーバーが表示されます。デバイスがDaydreamモードに移行したこと、またはDaydreamモードが解除されたことを検知するには、
Intent.ACTION_DREAMING_STARTED
とIntent.ACTION_DREAMING_STOPPED
のレシーバーを登録します。 -
注: ミュージックアプリ以外のアプリでオーディオを再生する場合は、デバイスがDaydreamモードに移行したときに再生を一時停止する必要があります。
- 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デバイスでは、4K対応TVに接続すれば4K Ultra HDビデオを再生できます。それ以外のFire TVデバイスでは再生できません。4K対応デバイスの詳細については、Fire TVのデバイス仕様を参照してください。4Kコンテンツを再生する前に、(1)Fire TVデバイスが4Kをサポートしていること、(2)接続されているTVが4Kに対応していることをアプリでチェックする必要があります。Amazon 4K拡張ライブラリを使用すると、Fire TV(第2世代)デバイスで4Kモードへの切り替えを行うことができます。
コントローラーに関する質問
- 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 TVゲームコントローラーのヘッドホンジャックにオーディオをストリーミングできます(現行世代のコントローラーのみ)。音量操作には、左側/右側のトリガーボタン(L2/R2)を使用します。
- 音量操作はシステム機能なので、アプリでほかのボタンにマッピングはできません。トリガーボタンを使用しないアプリやゲームの場合でも、ユーザーがメディアの再生をバックグラウンドでコントロールできるように、これらのボタンイベントをアプリでキャプチャや破棄などの処理対象にしないでください。
- Q: アプリでFire TV音声認識リモコンのマイクボタンをオーバーライドすることはできますか?
- マイクボタンは、一時的オーディオフォーカスを要求してシステム全体の音声機能を起動するもので、オーバーライドすることはできません。アプリでは、このオーディオフォーカス変更イベント(
AUDIOFOCUS_LOSS_TRANSIENT
)に加えて、ほかのオーディオフォーカス変更イベント(AUDIOFOCUS_LOSS
やAUDIOFOCUS_LOSS_TRANSIENT_CAN_DUCK
)も処理する必要があります。各種オーディオフォーカスのリクエストは、音声に限らず、あらゆるアプリによって行われるため、オーディオフォーカスのあらゆるユースケースを適切に処理する必要があります。詳細については、オーディオフォーカスの管理を参照してください。 - Q: メニューボタンにはどのような機能がありますか?また、アプリ内でオーバーライドできますか?
- デフォルトでは、メニューボタンはAndroidコンテキストメニューを起動し、画面の中央にメニューアイテムのリストを表示します。メニューボタンはオーバーライドが可能で、カスタムメニューのユーザーインターフェイスを提供したり、様々な目的に使用できます。
- メニューアイテムが1つだけの場合は、単純な切り替えスイッチ(たとえば、クローズドキャプションのオン/オフ)としてメニューボタンを使用し、この機能をユーザーに知らせるためのヒントを画面に表示させることもできます。
- Q: コントローラーを接続、切断、またはスリープ状態にすると、アクティビティが始めから再起動するのはなぜですか?
- これらのイベントは、Androidによって実行時の構成変更として処理されます。アプリでこれらのイベントを無視するには、
AndroidManifest.xml
を変更してandroid:configChanges
属性を追加し、keyboard
、keyboardHidden
、navigation
のキーを含めます。
<activity android:name="MyActivity"android:configChanges="keyboard|keyboardHidden|navigation">
- configChanges属性の詳細とアプリの構成変更の処理方法については、必要に応じてAndroidガイドの構成の変更に対処するを参照してください。
- Q: ゲームコントローラーの切断は、アプリやゲームでどのように処理すればよいですか?
- Amazon Fire TVゲームコントローラー(日本では現在お取り扱いできません)は、アイドル状態やスティックの角度が変わらない状態が5分を超えると、バッテリー残量を維持するためにシステムから切断される可能性があります。ほかのコントローラーも、アイドル状態が続いたりバッテリー残量が少なくなったりすると切断される可能性があります。コントローラー切断イベントを処理するには、Androidの
OnInputDeviceRemoved
リスナーを使用します。コントローラーが使用できなくなったことをユーザーに知らせるために、ゲームを一時停止するか、ダイアログを表示することを検討してください。
Fire TV Stickに関する質問
- Q: Amazon Fire TVとFire TV Stickの違いは何ですか?
- Fire TVのデバイス仕様に、全種類のFire TVデバイスの仕様が記載されています。
- Q: Amazon Fire TV対応アプリをFire TV Stickに適応させる方法を教えてください。
- Amazon Fire TVとFire TV Stickでは、どちらも同じFire OSが動作します(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がAFTM
とAFTT
のどちらになっているかを調べてください。詳細については、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/
フォルダに格納する必要があります。デフォルトのドローワブルをプラットフォームに応じて拡大すると、テクスチャ制限を超える大きさの画像が作成されることがあります。
Last updated: 2024年2月6日