開発者コンソール

HDMIイベントの処理


HDMIイベントの処理

アプリ開発者は、TV、AVR、Bluetoothスピーカーに関するイベントなど、接続されたすべてのデバイスの機能と状態変更を処理する必要があります。これらのイベントを処理できないと、ネットワークやCPUの使用率が不必要に増大し、ネットワークプロバイダーによって設定されたユーザーのデータ制限(データ上限)を超過する原因になります。帯域幅をすべて消費すると、同じネットワークに接続されているほかのデバイスのパフォーマンスも低下します。再生が無期限に継続すると、デバイスはスリープ状態にならないため、重要なソフトウェアアップデートの妨げになります。

HDMIの状態変更

アプリがHDMIの状態変更通知を受信する理由はいくつか考えられます。たとえば、TVの電源がオフになった、TVの入力が別のHDMIポートに切り替えられた、HDMIケーブルが物理的に取り外された、ビデオレシーバーでHDMI設定が調整されたなどが挙げられます。

  • アプリは、HDMI切断イベントを受信した場合、ビデオの再生を一時停止する必要があります。ライブコンテンツ(または一時停止できないコンテンツ)を再生中のアプリは、詳細ページに戻って、コンテンツの再生を停止する必要があります。HDMIシンク再接続イベントメッセージを受信しても、ユーザーがリモコンの再生ボタンを押すまで、再生は一時停止状態のままにしてください。
  • オーディオのみを再生するアプリは、HDMI切断イベントを受信した後も再生を継続できます。ただし、オーディオ出力デバイス(接続されたBluetoothスピーカーなど)が利用可能であることを確認する必要があります。

利用可能なAPI

HDMIの状態変更をリッスンする方法はさまざまです。Android Marshmallow(Fire OS 6)からの推奨方法は、AudioDeviceCallback APIを使用する方法です。これらのAPIはインテントよりも高速で、状態の変更に関する情報がより多く提供されます。

Fire OS 5を対象とするアプリでは、HDMI接続状態(接続または切断)を示すエクストラEXTRA_AUDIO_PLUG_STATEを持つインテントACTION_HDMI_AUDIO_PLUGのみをリッスンできます。

すべてのFire OSバージョンを対象とするアプリは、プラットフォームのランタイムAPIレベルのサポートに基づいて、使用するソリューションを決定する必要があります。

その他の注意事項

スマートTVでは、別の入力が選択されたことや、TVの電源がオフになったことを、接続されたFireTVデバイスに通知しない場合があります。これにより、TV入力の高速切り替えが可能になっています。ただし、そのような場合、Fire TVデバイスの出力がユーザーに表示されているかどうかを判断する確実な方法はありません。

再接続に関する通知を受信した場合、エンコードされたコンテンツを再生中のアプリは、オーディオ機能が変更されているかどうかを確認する必要があります。Fire TVがドルビーアトモス対応のオーディオビデオレシーバーに接続されているときに再生が開始され、HDMIケーブルがレシーバーから取り外された後、PCMにのみ対応したTVに再接続されたなどの可能性があるためです。

詳細については、「Fire TVにおけるマルチメディアアプリの要件」の出力状態の変更の要件を参照してください。