アンドロイドでは結構すぐに出来たが、
なぜかiOSではうまく動かない
よくわからないまま作ったのが悪かった・・・
ので、
キメラソース
※いろんな方々のネット情報を参考にしてなんとか取り繕うプログラムソース
と同時に、
いまさら、キチンとおさらいしようと、覚悟を決めた・・・
そもそも、Unity上での音の扱いを振り返る・・・
・AudioClip→楽器
・AudioSource→演奏者
・AudioMixer→指揮者
・AudioListener→聞き手
なんて、わかりやすいんだ・・・
【 マイクを使ってみる 】
流れとしてはマイクデバイスを検知して、
そのデバイスをスタート→Audioソースにマイクからの音をのっける
これで、audioソースにマイクで拾った音が鳴り響く
※ 拾った音が再生されて、その音がまた拾われて…となってハウリングが起こる
↓対策として、この方法が一番かも知れない…(audio.mute = true;にすると、audio.GetOutputData(data, 0);が使えない???)
【音を解析する】
マイクの音の再生までできたら、オーディオソース(マイク音)の値を解析する
audio.GetOutputData(waveData_, 1);
といった具合に、waveData_に値が入ってくるようです。
Unity のオーディオの再生・エフェクト・解析周りについてまとめてみた - 凹みTips
この値(配列waveData_)を使って平均的音量を取得できそうです
マイク入力の音量を用いてオブジェクトを呼び出すサンプル【Tips】
※全部、「そうです」というあまりわかっていない状態。
おさらいしようと思っても、もう私の知能では追いつかないレベル。
とりあえず、以上の流れで処理は出来たようです。
あとでこういった便利そうなモノも見つけました。
→ちょっとイマイチわからない部分があったので、
実際には使用していません。
【Unity】オーディオの周波数スペクトルを取得できる「unity-audio-spectrum」紹介 - コガネブログ
ちなみに、iOSではマイク仕様の許可をinfo.plistに記述する必要がありますが、
playersetteingで設定しておけば自動でxcodeに引き継いでいるようです。