Android NDK サウンド再生指針2013/11/18

さて、Android NDKプログラミングもそろそろサウンドの再生に取り掛かりたいと思います。

サウンドデータの管理ですが、
・音を鳴らす度にファイルから読み込むのでは重い
・PCMデータをメモリに置いておくのは容量を食う
ということで、
「メモリ上の圧縮フォーマットデータをデコードしながら再生」
ができるようにしたいです(アプリの規模や状態で常にそれがベストとは限りませんが、少なくとも対応しておきたい)。

しかし、Androidのサウンドは
・SDKの SoundPoolは圧縮フォーマットをリソースにできるけど、デコードしてメモリに常駐
・SDKの MediaPlayerはファイル指定のみ
・NDKの OpenSLは、圧縮ファイルの再生はファイル指定のみ
と、なかなか一筋縄ではいかないようです。

仕方が無いので、圧縮データ(問題なさそうなOgg Vorbisフォーマット)をデコードしつつ、OpenSLのPCM再生を使用するという方法で何とか進めてみたいと思います。
ああ、面倒くさい。