注: デベロッパーは、GitHub で入手可能なオープンソース Oboe ライブラリの使用を検討してください。Oboe は、AAudio とよく似た API を提供する C++ ラッパーです。AAudio を利用できる場合は AAudio を呼び出し、AAudio を利用できない場合は OpenSL ES にフォールバックします。
NDK パッケージには、Khronos Group が策定した OpenSL ES™ 1.0.1 API 仕様の Android 固有の実装が含まれています。このライブラリにより、シンセサイザー、デジタル オーディオ ワークステーション、カラオケ、ゲームなどのリアルタイム アプリを作成する際に、C または C++ を使用して高性能かつ低レイテンシのオーディオを実装できます。
OpenSL ES™ 標準で公開されているオーディオ機能は、Android Java フレームワークの MediaPlayer
API と MediaRecorder
API のオーディオ機能に似ています。OpenSL ES は C 言語インターフェースと C++ バインディングを提供しているため、いずれかの言語で作成されたコードから API を呼び出すことができます。
OpenSL ES API は、アプリのオーディオ機能の開発や性能向上のために使用できます。
標準の OpenSL ES ヘッダーである <SLES/OpenSLES.h> と <SLES/OpenSLES_Platform.h> をインクルードすると、オーディオの入出力が可能になります。<SLES/OpenSLES_Android.h> と <SLES/OpenSLES_AndroidConfiguration.h> には、その他の Android 固有の機能が含まれています。
このセクションでは、最初に OpenSL ES をアプリに組み込む方法について説明します。次に、OpenSL ES の Android 実装に関する必知事項について説明します。特に、この実装とリファレンス仕様の違いと、Android の互換性を維持するための追加の拡張機能に重点を置いて解説します。最後に、OpenSL ES を適切に実装するための補足的なプログラミング メモをいくつか紹介します。