android開発において、サウンドを扱うクラスはいくつかあるらしい。
・MediaPlayerクラス
→連打苦手なので、BGMに合うらしい
・SoundPoolクラス
→長い音は苦手(10秒まで)、SEに合うらしい
・AudioTrackクラス
→データをオーディオハードウェアに直接書き込むことができる
という事で、andengineの中身を調べてみたら、
Music→MediaPlayer
Sound→SoundPool
になっていた。うーむ、なるほど。無難。
そして!!調べてたら出てきた!!同時発音数!!!
public static final int MAX_SIMULTANEOUS_STREAMS_DEFAULT = 5;
っていう所が同時発音数だって!!今のとこ5音!!!爆笑!!
5音っていつの時代のゲームだよ・・。
まあ、モバイルのハードだからしょうがないとは言え・・。
せめて倍の10音欲しいよね。
というわけで、andengineのライブラリを書き換えて10音に設定!
org.andengine.audio.sound
SoundManager
本当は16音くらい欲しい!!
でもココ増やすと、1音づつスレッドが立ち上がるみたいで、処理が
すげー重くなるとの事。なんだその仕様・・。実験必要かしら。
まあハードが色々あるからしょうがないのかしらん。
そして、AudioTrackについて考察。
CRIのADX2なんかは自前でAudioTrackを使ってループ処理など
をやってるから、曲途中のループとか、色々と細かく出来ると言うことか・・。
AudioTrackは音関係のアプリを作るには通らないといけない道っぽい
けど、通常はみんなMediaPlayerかSoundPoolに逃げてる・・。
まあ今の問題は同時発音数だから一旦はこれでOKか!
0 件のコメント:
コメントを投稿