2017年12月27日

PARTY SOUND GRIDS | 制作後記 (1) | Unity からマイクで録音

忘・新年会の余興にピッタリ♪

では、今回から実際のプログラムに関して!

以前から、マイクを使ったアプリは何どもみてたんで、無理とか、大変とは思ってなかったんですが、どうせ Unity がなんとかしてくれるでしょ!って感じでしたね。

で、思った通り、Microphone Class ってのがありまして、これで簡単に制御できました。
デバッグに関しても、Mac 上の Unity Editor からも、ほぼ同じ挙動でマイク入力を録音できたんで、コードのトラブルシューティングもホントに簡単でした!

Micriphone.png

基本的には、
    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 が受け入れ先になるんで、コンポーネントに追加しておきます。
SoundManager.png

アプリ側の仕様として、最大 20 秒まで録音、としてあるので、nRecordingTime は 20 秒になってます。

さらに、録音中に、残り何秒録音されるか、カウントダウンを表示するために、別途 dRecordingStartTime を保存して、そこから計算する様にしてあります。

あ、それと DEVICE_NAME は、簡単に、
        DEVICE_NAME Microphone.devices[0];
って感じです。ホントはセレクターを入れたかったんですが、UI 作るのが面倒で、もう標準マイク限定になっちゃってますねぇ。
将来的には拡張したいと思ってます。

さて、Unity Editor 上では、これだけでマイクからの入力が、Audio Source コンポーネントに保存されて動作する様になりました!!

ホントに簡単でしたね!ありがとう Unity !!

次回は、Audio Source に保存したデータを、WAV フォーマットでファイルとして保存!の巻です。
ではまた〜

簡単な、操作説明ビデオですよ


Version 1.0.1 絶賛公開中!!
弾幕系よけ x よけゲーム

Version 1.2.0 絶賛公開中!!
iOS デバイスの人は、上のアイコンからダウンロードしてみてね!!
基本無料。ゲーム内課金有り(無料で十分遊べます)

Version 1.1.0 絶賛公開中!!
すくすく教育シリーズ第一弾


初めてみました。よかったらクリックお願いしますね ♪
        にほんブログ村 ゲームブログ×PlayNCBlogへ 

posted by やまけん at 16:09| Comment(0) | Unity | このブログの読者になる | 更新情報をチェックする