Android NDK サウンド再生指針 ― 2013/11/18
さて、Android NDKプログラミングもそろそろサウンドの再生に取り掛かりたいと思います。
サウンドデータの管理ですが、
・音を鳴らす度にファイルから読み込むのでは重い
・PCMデータをメモリに置いておくのは容量を食う
ということで、
「メモリ上の圧縮フォーマットデータをデコードしながら再生」
ができるようにしたいです(アプリの規模や状態で常にそれがベストとは限りませんが、少なくとも対応しておきたい)。
しかし、Androidのサウンドは
・SDKの SoundPoolは圧縮フォーマットをリソースにできるけど、デコードしてメモリに常駐
・SDKの MediaPlayerはファイル指定のみ
・NDKの OpenSLは、圧縮ファイルの再生はファイル指定のみ
と、なかなか一筋縄ではいかないようです。
仕方が無いので、圧縮データ(問題なさそうなOgg Vorbisフォーマット)をデコードしつつ、OpenSLのPCM再生を使用するという方法で何とか進めてみたいと思います。
ああ、面倒くさい。
サウンドデータの管理ですが、
・音を鳴らす度にファイルから読み込むのでは重い
・PCMデータをメモリに置いておくのは容量を食う
ということで、
「メモリ上の圧縮フォーマットデータをデコードしながら再生」
ができるようにしたいです(アプリの規模や状態で常にそれがベストとは限りませんが、少なくとも対応しておきたい)。
しかし、Androidのサウンドは
・SDKの SoundPoolは圧縮フォーマットをリソースにできるけど、デコードしてメモリに常駐
・SDKの MediaPlayerはファイル指定のみ
・NDKの OpenSLは、圧縮ファイルの再生はファイル指定のみ
と、なかなか一筋縄ではいかないようです。
仕方が無いので、圧縮データ(問題なさそうなOgg Vorbisフォーマット)をデコードしつつ、OpenSLのPCM再生を使用するという方法で何とか進めてみたいと思います。
ああ、面倒くさい。
コメント
トラックバック
このエントリのトラックバックURL: http://raseene.asablo.jp/blog/2013/11/18/7060447/tb
コメントをどうぞ
※メールアドレスとURLの入力は必須ではありません。 入力されたメールアドレスは記事に反映されず、ブログの管理者のみが参照できます。
※投稿には管理者が設定した質問に答える必要があります。