GoogleがOboeの最初のプロダクションレディ・バージョンをリリースした。OboeはAndroidで高性能オーディオアプリを構築するためのC++ライブラリで、99%のAndroidデバイスで最低のレイテンシを実現する。
音楽ゲームやオーディオアプリを作る開発者は、通常、レイテンシの問題に対処する必要がある。Oboeは、API 16+ (Jelly Bean)互換のシンプルなAPIを提供することで、レイテンシの問題を解決することを目指している。内部的に、API 27+ (Oreo MR1)ではAAudioの性能と機能を活用し、API 16+ではOpenSL ESを使用する。
AAudioは低レイテンシを必要とする高性能オーディオアプリケーション用に設計されたAndroid C APIで、Android Oで導入された。アプリはストリームにデータを読み書きすることでAAudioとやりとりする。
AndroidのOpenSL ESは、Khronos GroupによるOpenSL ES API仕様の実装だ。AAudioと同様に、このライブラリも低レイテンシを必要とする高性能オーディオアプリケーション用に設計された。加えて、MediaPlayerおよびMediaRecorder APIに似たオーディオ機能も提供する。
Oboeを使うには、Android NDK r17以上が必要になる。Android Studio SDK Manager経由もしくは直接ダウンロードすることでインストールできる。
Android NDK r17以上をインストールしたら、GitHubリポジトリをクローンして、CMakeLists.txtファイル(このファイルがない場合は、プロジェクトにC++サポートを追加する必要がある)の末尾に以下のコマンドを追加する。
cmake_minimum_required(VERSION 3.4.1)
# 自分のネイティブライブラリのビルド
add_library (native-lib SHARED src/main/cpp/native-lib.cpp )
# ネイティブライブラリが依存するライブラリを指定、Obeoを含む
target_link_libraries (native-lib log oboe)
# Oboeライブラリのビルド
set (OBOE_DIR ../../../oboe)
add_subdirectory (${OBOE_DIR} ./oboe)
# アプリがOboeのパブリックヘッダーを使えるようにする
include_directories (${OBOE_DIR}/include)
数行でオーディオストリームを作成できる。
AudioStreamBuilder builder;
AudioStream *stream = nullptr;
Result result = builder.openStream(&stream);
詳しくは、ドキュメント, APIリファレンス、サンプルコードを参照してほしい。加えて、Oboeを使ったシンプルな音楽ゲームを構築できるcodelabもある。このゲームの目標は、耳にした拍手のパターンをまねて画面をタップすることだ。
Rate this Article
- Editor Review
- Chief Editor Action