忘・新年会の余興にピッタリ♪
では、今回から実際のプログラムに関して!
以前から、マイクを使ったアプリは何どもみてたんで、無理とか、大変とは思ってなかったんですが、どうせ Unity がなんとかしてくれるでしょ!って感じでしたね。
で、思った通り、Microphone Class ってのがありまして、これで簡単に制御できました。
デバッグに関しても、Mac 上の Unity Editor からも、ほぼ同じ挙動でマイク入力を録音できたんで、コードのトラブルシューティングもホントに簡単でした!
基本的には、
Microphone.Start(DEVICE_NAME,false,nRecordingTime,maxFreq);
と、
Microphone.End(DEVICE_NAME);
だけでハンドルできてしまします。
maxFreq は、Line 105 みたいに、
Microphone.GetDeviceCaps(DEVICE_NAME,outminFreq,outmaxFreq);
と、デバイスから取ってたんですが、これ、iOS デバイスから実行した際には、制限なしの "0" で帰ってくるので、
その場合は、一般的な "96000" を使うようにしてます。
録音データの保存先ですが、これはひとまずオンメモリの Audio Source が受け入れ先になるんで、コンポーネントに追加しておきます。
アプリ側の仕様として、最大 20 秒まで録音、としてあるので、nRecordingTime は 20 秒になってます。
さらに、録音中に、残り何秒録音されるか、カウントダウンを表示するために、別途 dRecordingStartTime を保存して、そこから計算する様にしてあります。
あ、それと DEVICE_NAME は、簡単に、
DEVICE_NAME = Microphone.devices[0];
って感じです。ホントはセレクターを入れたかったんですが、UI 作るのが面倒で、もう標準マイク限定になっちゃってますねぇ。
将来的には拡張したいと思ってます。
さて、Unity Editor 上では、これだけでマイクからの入力が、Audio Source コンポーネントに保存されて動作する様になりました!!
ホントに簡単でしたね!ありがとう Unity !!
次回は、Audio Source に保存したデータを、WAV フォーマットでファイルとして保存!の巻です。
ではまた〜
簡単な、操作説明ビデオですよ
Version 1.0.1 絶賛公開中!!
Version 1.2.0 絶賛公開中!!
iOS デバイスの人は、上のアイコンからダウンロードしてみてね!!
基本無料。ゲーム内課金有り(無料で十分遊べます)
Version 1.1.0 絶賛公開中!!