2015年2月9日月曜日

andoroidでサウンドを扱うクラスを調べてたら同時発音数わかった

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 件のコメント:

コメントを投稿