Android Qでは、アプリが他のアプリからの音声を録音し、デバイスの温度を監視できるようになります

Android Q には、別のアプリからの内部オーディオ出力を記録し、デバイスの温度を監視するための新しい API が追加されています。

Google は与え、Google は奪います。 Android の新しいリリースでは、既存のアプリの機能を向上させたり、新しいカテゴリのアプリを開拓したりするための新しい API が多数導入されています。 一方で、Google は Android プラットフォームのセキュリティを向上させるために、既存の API へのアクセスを削除したり、その機能を制限したりしています。 Android Q リリースも例外ではなく、共有ストレージ、クリップボード アクセス、通知、その他の API への変更についてはすでに多くのことを説明しました。 今年は Google I/O 開発者カンファレンスで、Google はユーザーとモバイル ゲーム開発者にとって特に興味深い Android Q の新しい API、AudioPlaybackCapture と サーマル API。

Android QのAudioPlaybackCaptureを使用して他のアプリから音声を録音する

モバイル ゲームは巨大な産業であり、特に米国、中国、インドなどの市場では、当分減速する気配はありません。 スマートフォンでゲームやソーシャル メディアに時間を費やす人が増えているため、ゲーム体験をオンラインで共有したいと考えるのは当然のことです。

Android は基本的に最初からスクリーンショットの撮影をサポートしていますが、画面のビデオのキャプチャは、Android 5.0 Lollipop 以降でのみサポートされています。 MediaProjection API. 残念ながら、この API では、サードパーティ製アプリが他のアプリの内部オーディオ出力を録音することはできません。 サードパーティのスクリーンレコーダーにデバイスのマイクからの外部オーディオ出力を強制的に記録させる (s)。 サムスンなどの OEM や ファーウェイ 画面録画中に内部オーディオ出力を録音するためのシステム アプリを提供しますが、唯一の方法 他のデバイスの所有者がデバイスからのビデオとオーディオ出力を適切に記録するには、購入する必要があります。 ある サードパーティのアクセサリ. 幸いなことに、Google はついに、サードパーティ アプリが他のアプリから音声を録音する方法を Android Q に導入しました。

AudioPlaybackCapture API は、Google によって、画面キャプチャの類似物であると説明されていますが、音声録音用です。 現時点でこの API を使用している唯一のアプリは Google のものですが、 ライブキャプション、デバイス上で再生されているビデオにキャプションを追加するアクセシビリティ ツール、API の ドキュメントには、その主な目的は、ストリーミング アプリが音声をキャプチャできるようにすることであると記載されています。 ゲームで遊ぶ。 モバイル ゲーマーがセッションを Twitch や YouTube などのサービスにストリーミングしていると考えてください。 この API は、オーディオがキャプチャされているアプリのオーディオ レイテンシーに影響を与えないように設計されており、オーディオとビデオが非同期にならないようにゲームプレイを録画するのに最適です。

Android の初期とは異なり、新しい API に対する Google のアプローチはより慎重になっています。 AudioPlaybackCapture は、オーディオをキャプチャしているアプリとキャプチャを実行しているアプリの両方が特定の要件を満たしている場合にのみ使用できます。 これらの要件の概要は次のとおりです。

  • アプリのオーディオをサードパーティ アプリでキャプチャするには、次の要件を満たす必要があります。
    • アプリのマニフェストでは、allowAudioPlaybackCapture が true に設定されているか、設定が解除されている必要があります。 (Android Q をターゲットとするアプリの場合はデフォルトで true に設定されますが、Android Pie をターゲットとするアプリの場合は手動で設定できます。)
    • オーディオを生成するアプリのオーディオ使用タイプは USAGE_MEDIA、USAGE_GAME、または USAGE_UNKNOWN である必要があります。
    • オーディオ キャプチャ ポリシー (setAllowedCapturePolicy) を ALLOW_CAPTURE_BY_ALL に設定する必要があります。 このポリシーは実行時に設定できますが、ポリシーの変更を有効にするには再生を再開する必要があります。 ALLOW_CAPTURE_BY_SYSTEM が設定されている場合、システム アプリのみがオーディオを録音できます (ただし、 オーディオを保存したり、サードパーティのアプリに渡したり、16kHz を超える 16 ビット モノラルで録音したりすることはできません。 品質。)
  • アプリが別のアプリから音声を録音するには、次の要件を満たす必要があります。
    • アプリは MediaProjectionManager.createScreenCaptureIntent プロンプトを表示する必要があり、ユーザーはそれを受け入れる必要があります。
      アプリが MediaProjection API を使用して画面をキャプチャしようとしたときにユーザーに表示される確認ダイアログ。
    • アプリは、 レコードオーディオ 許可。
    • アプリは、音声が録音されるアプリと同じユーザー プロファイルに存在する必要があります。

ほとんどのゲームでは、この新しい API を使用してアプリでオーディオをキャプチャできるようになると思いますが、ゲームがそれをサポートするように更新されるまでには時間がかかる可能性があります。 一方、ライセンスの問題があるため、音楽やビデオのストリーミング アプリがサードパーティ向けにこの API をサポートすることは期待できません。 ただし、アプリがオーディオ キャプチャ ポリシーを ALLOW_CAPTURE_BY_SYSTEM に設定する場合に Google が課す制限は、次のことを意味します。 音楽およびビデオ ストリーミング アプリの開発者は、アクセシビリティを向上させるために、システムによるオーディオ キャプチャを有効にしても問題ないはずです。

Android Q の AudioPlaybackCapture API の詳細については、こちらをご覧ください。 このページ.

Android Q の Thermal API を使用したスロットルの監視

サーマル スロットリングはほぼ完全にシステムによって管理され、スロットリングの影響を最も受けるアプリからの入力や通知さえありません。 デバイスのリソースに負担がかかりすぎると、ほとんどのデバイスは CPU と GPU の速度を抑制し、ゲームのパフォーマンスに悪影響を及ぼします。 ゲーム開発者として、これに関して実際にできることは、設定を変更する前に、変更がパフォーマンスに与える可能性のある潜在的な影響についてユーザーに警告すること以外に何もありません。

ただし、Android Q の新しい Thermal API を使用すると、アプリはパフォーマンス調整のさまざまな段階でコールバックを受け取ることができます。 開発者は、大量の CPU、GPU、またはモデムを必要とするアクティビティを減らすことで、デバイスへの負担を軽減する機会を得ることができます。 使用法。 たとえば、ゲームはデバイスの GPU スロットリングがなくなるまで動的に解像度を下げたり、マップ アプリで次のような拡張機能を無効にしたりできます。 拡張現実ナビゲーション CPUの負荷を軽減します。

この新しい API を使用するには、アプリは PowerManager (addThermalStatusListener) にリスナーを登録し、システムは次のいずれかの温度ステータス コードをアプリに送信します。

  • THERMAL_STATUS_NONE: 「スロットリング中ではありません。」
  • THERMAL_STATUS_LIGHT: "UX に影響しない軽いスロットリング。"
  • THERMAL_STATUS_MODERATE: 「UX に大きな影響を与えない中程度のスロットリング。」
  • THERMAL_STATUS_SEVERE: 「UX に大きな影響を与える深刻なスロットル。」
  • THERMAL_STATUS_CRITICAL: 「プラットフォームは電力を削減するためにあらゆることを行いました。」
  • THERMAL_STATUS_EMERGENCY: "熱状態のため、プラットフォームの主要コンポーネントがシャットダウンしています。 デバイスの機能は制限されます。」
  • THERMAL_STATUS_SHUTDOWN: "ただちにシャットダウンする必要があります。

Thermal API のサポートには明らかに Android Q が必要ですが、もう 1 つの要件は新しい HAL の追加です。 Google によれば、Android Q 上の Pixel デバイス (Pixel、Pixel XL、Pixel 2、Pixel 2 XL、Pixel 3、Pixel 3 XL、 ピクセル3a、 そして ピクセル 3a XL)は Thermal API をサポートしていますが、Google は他のデバイスのサポートの追加に取り組んでいます。

詳細については、こちらをご覧ください。 サーマルAPIはこちら.