Google は、黒人コミュニティに対する人種平等の促進に取り組んでいます。取り組みを見る

オーディオの実装

ここでは、オーディオ ハードウェア抽象化レイヤ(HAL)の実装方法について説明するとともに、オーディオ ポリシーの構成(ファイル形式、コード編成、前処理効果)の詳細、および共有ライブラリの構成方法(Android.mk のファイルの作成)について解説します。

オーディオ HAL 機能

Android 10 リリースでは、オーディオ HAL に次の新機能が含まれています。

  • AudioSource
    • VOICE_PERFORMANCE
    • ECHO_REFERENCE
  • AudioFormat
    • AAC_LATMLCHE V1、および V2
    • CELT
    • APTX_ADAPTIVE
    • LHDC
    • LHDC_LL
  • AudioChannelMask
    • OUT_HAPTIC_A
    • OUT_HAPTIC_B

上記の HAL 機能をフレームワークで使用できるようにするには、デバイスの audio_policy_configuration.xml で宣言する必要があります。

オーディオ HAL およびサブシステムの要件

Android 10 リリースでは、オーディオ HAL およびサブシステムを実装するために次の要件を満たす必要があります。

  • audio_policy_configuration.xml で個別の入力ストリーム プロファイルが宣言されている場合、デバイス選択のために、すべてのプロファイルを同時に有効化できるように設定されている。
  • 入力プロファイルでサウンド トリガーのキャプチャ(起動ワード DSP バッファからのキャプチャ)が サポートされている場合、サウンド トリガー HAL でサポートされる同時セッションの数に対応したこのプロファイルのアクティブ ストリームの数を実装でサポートしている。
  • AP からの DSP 起動ワードの検出とキャプチャの同時実行。
  • 音声通話 TX の同時実行と AP からのキャプチャ。

オーディオ HAL の実装

オーディオ HAL は、次のインターフェースで構成されています。

  • hardware/libhardware/include/hardware/audio.h。 オーディオ デバイスの主な機能を表します。
  • hardware/libhardware/include/hardware/audio_effect.h。 オーディオに適用できるダウンミックス、エコー、ノイズ抑制などの効果を表します。

すべてのインターフェースを実装する必要があります。

オーディオ ヘッダー ファイル

定義可能なプロパティについては、次のオーディオ ヘッダー ファイルをご覧ください。

  • Android 6.0 以降の場合は、system/media/audio/include/system/audio.h をご覧ください。
  • Android 5.1 以前の場合は、system/core/include/system/audio.h をご覧ください。

具体的な例については、Galaxy Nexus の実装例 device/samsung/tuna/audio をご覧ください。

次のステップ

オーディオ HAL の実装に加えて、オーディオ トポロジを記述し、共有ライブラリに HAL 実装をパッケージ化するオーディオ ポリシー構成ファイルを作成する必要があります。また、自動ゲイン コントロールやノイズ抑制などの前処理効果を設定します。