高性能オーディオ

NDK パッケージには、Khronos グループが策定した OpenSL ES™ API 仕様を利用する Android 固有の実装が含まれます。このライブラリを使用すれば、シンセサイザー、デジタル オーディオ ワークステーション、カラオケ、ゲーム、その他のリアルタイム アプリのどれを記述する場合でも、C または C++ を使用して高性能で低レイテンシのオーディオを実装することができます。

OpenSL ES™ 標準は、Android Java フレームワークの MediaPlayer API と MediaRecorder API に含まれているものと類似したオーディオ機能を公開しています。 OpenSL ES は、C 言語のインターフェースと C++ バインドを提供するので、このいずれかの言語で記述されたコードから API を呼び出すことができます。

優れたオーディオ アプリを作成する

OpenSL ES API を利用すれば、アプリのオーディオ性能を開発、向上することができます。 一般的なユースケースは次のとおりです。

  • デジタル オーディオ ワークステーション(DAW)。
  • シンセサイザー。
  • ドラムマシン。
  • ミュージック ラーニング アプリ。
  • カラオケアプリ。
  • DJ ミキシング。
  • オーディオ エフェクト。
  • ビデオ / オーディオ会議。

このセクションでは、まず、OpenSL ES をアプリに組み込む方法を紹介します。その後、OpenSL ES の Android 実装について理解しておくべき事項について説明します。具体的には、まずAndroid 実装とリファレンス仕様における違いに焦点を当て、その後に Android の互換性を保つための追加の拡張機能について扱います。 OpenSL ES の Android 実装について説明した後は、オーディオのレイテンシを最小限に抑える方法を紹介します。また、最適なサンプルレートを選択できるようにオーディオのサンプリングについてのアドバイスを示し、浮動小数点数を使用してオーディオ データを表す際の長所と短所について考えます。 最後は、OpenSL ES を適切に実行できるように、補足のプログラミング メモを提供することで締めくくります。